この種のクラスメンバーの宣言で型の繰り返しを避ける方法はありますか?クラスメンバ初期化子で型の繰り返しを避けますか?
Dictionary<string, int> myDict = new Dictionary<string, int>();
この種のクラスメンバーの宣言で型の繰り返しを避ける方法はありますか?クラスメンバ初期化子で型の繰り返しを避けますか?
Dictionary<string, int> myDict = new Dictionary<string, int>();
いいえ、ローカル変数にはvar
しか使用できません。基本的には、あなたは繰り返しに悩まされています、私は恐れています。
エリックリッペルトは素晴らしいblog post on thisです。注意すべき
興味深いポイント:Javaはあなたがにを割り当てるしようとしているものに基づいて、他の方法でラウンド暗黙の型と型推論を実行します。これは合法であることを意味します:
// Note: This is Java, not C#!
class CollectionHelpers
{
public static <T> List<T> newList()
{
return new ArrayList<T>();
}
}
// In another class (doesn't have to be static)
static List<String> names = CollectionHelpers.newList();
確かにVB.NETを使用してください。 ;それは質問とは直接関係ありませんけど)
myDict as New Dictionary(Of String, Integer)()
、一部の人々は、コレクションの初期化を使用してC#3でこれを行うことができます興味があるかもしれない:
var myDict = new Dictionary<string, int>()
{
{ "one", 1 },
{ "two", 2 },
{ "three", 3}
};
これは、クラスのメンバーには、opで尋ねられたようにはできません。 –
私はちょうどそれが関係なく、いくつかの人々のために有用かもしれないと思った。ホーハム。 –
@ダン、ここでの問題はオブジェクト初期化子リストではありません。その機能はかなり素晴らしいです。 :)問題は、クラスメンバーに 'var'キーワードを使うことができないということです。辞書の型に置き換えれば、あなたの投稿は面白くて正確になります。 :) –
ます。http://blogs.msdn。 com/ericlippert/archive/2009/01/26/why-no-var-on-fields.aspx –
私の無回答を削除しました。私を修正してくれてありがとう。 –