ここで得たものよりも、コンストラクターが常に少なくとも 1 つの値で呼び出されるようにするよりエレガントな方法はありますか? 値が指定されていない場合はコンパイラ エラーが発生するので、この方法で行いました。
public class MyClass
{
private readonly List<string> _things = new List<string>();
public string[] Things { get { return _things.ToArray(); } }
public MyClass(string thing, params string[] things)
{
_things.Add(thing);
_things.AddRange(things);
}
}
編集
コメントに基づいて、コードをこれに変更しました...
public class Hypermedia : Attribute
{
private readonly Rel[] _relations;
public IEnumerable<Rel> Relations { get { return _relations; } }
public Hypermedia(Rel relation, params Rel[] relations)
{
var list = new List<Rel> {relation};
list.AddRange(relations);
_relations = list.ToArray();
}
}
私がやろうとしていたことを隠すために、以前にコードを編集したことをお詫びします。コード エディターから直接貼り付ける方が簡単です。