Our coding standards ask that we minimise the use of C# var (suggests limiting it\'s use to being in conjunction with Linq). However there are times when using generics wher
I've got ReSharper 4.1, and it does offer this option (in either direction).
Actually, I'd recommend challenging the standard... the former is far more readable than the latter (especially if you call the variable pair
or something similar). I would't use "var" for var i = 0
, but it is ideally suited to the above.
For bulk changing, go to:
and run...
I'd argue that where you have complex generic types on your domain objects you should typedef them
class DomainValueCollection : KeyValue<DateTime, Dictionary<string, float>>{}
where DomainValueCollection is somehting that makes sense in your domain context
the code then becomes
var allItems = new DomainValueCollection();
rather than
var allItems = new KeyValue<DateTime, Dictionary<string, float>>();
@Adam - you can't declare a class here, since that won't be what comes back from an IDictionary<,>.GetEnumerator()
- however, you can alias via using
:
using InnerPair = System.Collections.Generic.KeyValuePair<System.DateTime,
System.Collections.Generic.Dictionary<string, float>>;
Then:
foreach(InnerPair pair in dict) {...}
This is just a type alias, so works fine.
Resharper does this (only in version 4+ I'm sure of it) but I don't know if its possible to simply convert var into the specific type automatic - eventually you need to go to the "var" and then a light shows up which gives you the option to specify the type explicitly
This is possible in Visual Studio 2017.
Tools > Options > Text Editor > C# > Code Style > General –
Find 'var' preferences > When variable type is apparent. For Preference select "Prefer explicit type," and for Severity select "Suggestion."
You'll now get the light bulb actions when you use var
, and you can quickly change to the explicit type by using the Ctrl. shortcut key.
DevExpress supports this with CodeRush, and they recently starting giving some of the refactorings away for free. The refactoring you are looking for is "Make Explicit"
http://devexpress.com/Products/Visual_Studio_Add-in/CodeRushX/