0

html属性を渡す必要があります。

このようなものを1つの式コードにパックすることは可能ですか?

var tempDictionary = new Dictionary<string, object> { 
   { "class", "ui-btn-test" }, 
   { "data-icon", "gear" } 
}.Add("class", "selected");

また

new Dictionary<string, object> ().Add("class", "selected").Add("diabled", "diabled");

4

1 に答える 1

1

あなたが参照しているものは、メソッドチェーンとして知られています。この良い例は、StringBuilderのAppendメソッドです。

StringBuilder b = new StringBuilder();
b.Append("test").Append("test");

これが可能なのは、AppendメソッドがStringBuilderオブジェクトを返すためです。

public unsafe StringBuilder Append(string value)

しかし、あなたの場合、のAddメソッドDictionary<TKey, TValue>はvoidとマークされています

public void Add(TKey key, TValue value)

したがって、メソッドチェーンはサポートされていません。ただし、新しいアイテムを追加するときにメソッドチェーンを本当に使用したい場合は、いつでも独自のメソッドチェーンを使用できます。

public static Dictionary<TKey, TValue> AddChain<TKey, TValue>(this Dictionary<TKey, TValue> d, TKey key, TValue value)
{
  d.Add(key, value);
  return d;
}

次に、次のコードを記述できます。

Dictionary<string, string> dict = new Dictionary<string, string>()
  .AddChain("test1", "test1")
  .AddChain("test2", "test2");
于 2012-10-29T11:59:00.767 に答える