C't bir "içi" dizi olabilir#? | Netgez.com
SORU
28 Mayıs 2015, PERŞEMBE


C't bir "içi" dizi olabilir#?

Bu bir yerde olduÄŸunu hayal et

public static T AnyOne<T>(this T[] ra) where T:class
    {
    int k = ra.Length;
    int r = Random.Range(0,k);
    return ra[r];
    }

hatta sadece bu

public static string OneOf(this string[] strings)
    {
    return "a";
    }

Sonra, tabii ki bunu yapabilirsiniz...

string[] st = {"a","b","c"};
string letter = st.AnyOne();

... harika. AMA. Bunu yapmak mümkün DEĞİL gibi görünüyor:

string letter = {"a","b","c"}.AnyOne();

hatta bu belki de

string letter = ( {"a","b","c"} ).AnyOne();

ya ben denedim baÅŸka bir ÅŸey.

Aslında (1) Bu neden yapamaz? ve (2) Ben bir şey eksik, nasıl eğer bir yolu varsa bunu yapar mısınız?

CEVAP
28 Mayıs 2015, PERŞEMBE


Dizinin ilk oluşturmak için, new[] kullanarak.

string letter = (new[] {"a","b","c"}).AnyOne();

@Hvd bahsedilen dayalı parantez (..), olmadan bunu yapmak daha okunabilir olduğunu düşünüyorum çünkü dayalı parantez ekledim.

string letter = new[] {"a","b","c"}.AnyOne();

Ve diğer yanıtlar belirtildiği gibi veri türü new string[] belirtebilirsiniz.


Sadece dizi doldurmak için bir yol olarak düşünebilirsiniz, çünkü {"a","b","c"} yaratmak için değil yapamazsın.

Başka bir nedeni derleyici karışık olacaktır, oluşturmak için neler olacağını bilemeyiz, string[]{ .. } List<string>{ .. } bir örnek için.

new[] sadece derleyici kullanarak biliyorumveri türü(".."), ne istiyorsun {..}, (string) arasında. Önemli bölümü bir dizi istediğiniz anlamına gelir [].

Hatta new[] ile boÅŸ bir dizi oluÅŸturabilirsiniz.

string[] array = new []{ }; // Error: No best type found for implicity-typed array

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:
C#

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • Official Android Tips

    Official And

    23 EYLÜL 2009
  • martin shervington

    martin sherv

    7 EKİM 2011