6
голосов
2ответов
236 просмотров

Why can't I do this with implicit types in C#?

var x = new { a = "foobar", b = 42 }; List<x.GetType()> y; Is there a different way to do what I want to do here? If there's not, I don't really see all that much point in implicit types...

3
голосов
5ответов
570 просмотров

Will "long i = 1;" cause an implicit type conversion in C?

If I write "long i = 1;" instead of "long i = 1l;", will the 1 be recognized as int and then implicitly converted to long? Edit: Thank you all. I see there's no type conversion. Is this also the case with the suffix u (like 10u)? Then what's the use of those l and u?

6
голосов
8ответов
3084 просмотров

What are the benefits of implicit typing in C# 3.0>+

The only advantage I can see to do: var s = new ClassA(); over ClassA s = new ClassA(); Is that later if you decide you want ClassB, you only have to change the RHS of the declaration. I guess if you are enumerating through a collection you can also just to 'var' and then figure out the ty...

0
голосов
4ответов
210 просмотров

Неявные преобразования классов

Я знаю, что могу использовать неявные преобразования с классом следующим образом, но есть ли способ заставить экземпляр возвращать строку без приведения или преобразования? public class Fred { public static implicit operator string(Fred fred) { return DateTime.Now.ToLongTimeSt...

22
голосов
6ответов
1184 просмотров

Неявная типизация; почему только локальные переменные?

Кто-нибудь знает или хочет предположить, почему неявная типизация ограничивается локальными переменными? var thingy = new Foo(); Но почему бы и нет ... var getFoo() { return new Foo(); }

1
голосов
2ответов
1251 просмотров

Как передать определяемый пользователем тип в SqlParameterCollection.AddWithValue?

У меня есть собственный тип данных с именем StudentID, который имеет неявное преобразование в строку. Когда я передаю экземпляр StudentID в SqlCommand.Parameters.AddWithValue (в качестве значения) и выполняю команду, я получаю следующую ошибку: No mapping exists from object type StudentID ...

65
голосов
5ответов
37824 просмотров

Использование неявно типизированных локальных переменных

Я только что установил пробную версию ReSharper и первое, что я заметил заключается в том, что он всегда предлагает заменить явно типизированные локальные переменные неявно типизированными, например: public string SomeMethod(int aParam) { int aNumber = SomeOtherMethod(aParam); // sh...

53
голосов
17ответов
16115 просмотров

Почему var может быть плохим?

На днях я разговаривал со своими коллегами и услышал, что их стандарт кодирования явно запрещает им использовать ключевое слово var в C #. Они понятия не имели, почему это так, и я всегда считал неявное объявление невероятно полезным при кодировании. У меня никогда не было проблем с выяснением, ...