7
Bir kurucunun her zaman burada sahip olduğumdan en az bir değer ile çağrılmasının daha zarif bir yolu var mı? Hiçbir değer sağlanmazsa, derleyici hatası istediğim gibi yapmıştım. açıklamalara dayanarakC# gereken minimum bir değer ile paragraflar
, bu kod değişti DÜZENLEME
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);
}
}
... çabasıyla önce kodunu düzenlemeyle ilgili
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();
}
}
Özür yapmaya çalıştığım şeyi sakla. Doğrudan kod düzenleyicimden yapıştırmak daha kolay!
bir uygulama detaylı olarak yapılacak diğer tek _tiny_ bit olası yeniden boyutlandırma önlemek için toplam uzunluğuna yapıcısında '_things List' örneğini için: '_things = Yeni listesi (things.Length + 1);' Ama bu sadece küçük bir optimizasyon (büyük olasılıkla fark yoktur). İmza değişikliklerine gelince, sanmıyorum. (Ancak bu imza, diziyi çalışma zamanında oluşturup bunu "paramlar" ı derleme zamanında kullanıp atmak istemezse acı vericidir, ilk dizi öğesini ayırıp bir bütün oluşturmalısınız. parametrelerin geri kalanı için ikinci dizi) –
Arayan ''null'' 'n''' olarak geçebilirdi' –
@Tim - Ben sadece paramız var mıyım, zorlamak için" şey "parametresini ekliyorum Parametre sağlanmadığında derleyici hatası. –