views:

128

answers:

3

Hi, I often type string in c# when actually I want to type String. I know that string is an alias of String and I am really just being pedantic but i wish to outlaw string to force me to write String. Can this be done in ether visual studio intellesence or in resharper and how?

A: 

I've not seen it done before, but you may be able to achieve this with an Intellisense extension. A good place to start would be to look at the source for this extension on CodePlex.

Would be good to hear if you have any success with this.

GrahamMoore
A: 

I have always read in "Best Coding Practices" for C# to prefer string, int, float ,double to String, Int32, Single, Double. I think it is mostly to make C# look less like VB.NET, and more like C, but it works for me.

Also, you can go the other way, and add the following on top of every file

using S = System.String;

.. S msg = @"I don't like string.";

you may laugh at this, but I have found it invaluable when I have two similar source codes with different underlying data types. I usually have using num=System.Single; or using num=System.Double; and the rest of the code is identical, so I can copy and paste from one file to the other and maintain both single precision and double precision library in sync.

jalexiou
Sorry but I think this not realy good. He asked for a better coding style, may be because he switches often between Java and C#. Using S = System.String feels odd and remembers me on old c++ macros which nearly killed my ambition on learning c++.
Harald-K.
A: 

I think ReSharper can do this!

Here is an extract from the documentation:

ReSharper 5 provides Structural Search and Replace to find custom code constructs and replace them with other code constructs. What's even more exciting is that it's able to continuously monitor your solution for your search patterns, highlight code that matches them, and provide quick-fixes to replace the code according to your replace patterns. That essentially means that you can extend ReSharper's own 900+ code inspections with your custom inspections. For example, if you're migrating to a newer version of a framework, you can create search patterns to find usages of its older API and replace patterns to introduce an updated API.

cheers, Chris

ChrisTTian667