folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder C# [ ] Arasına Yazılan Komutlar



C# [ ] Arasına Yazılan Komutlar

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Https
    Https's avatar
    Kayıt Tarihi: 05/Ağustos/2017
    Erkek

    Github'daki bazı projelere bakıyorum.  [ ] karakterleri arasına yazılmış kodlara denk geldim. Örnek;

    44.        [return: MarshalAs(UnmanagedType.Bool)]

    47.        [DllImport("user32.dll")]

    62.        [StructLayout(LayoutKind.Sequential)]

    113.     [Flags]

     

    47. satır gibi olanlar anlaşılabilir win32 api ekliyor ama diğerleri nedir. Ve bu "[ ]" belirteci tam olarak ne için kullanılır merak ediyorum. Şimdiden teşekkürler.

    Kaynak;

    https://github.com/djhohnstein/SharpLogger/blob/master/Program.cs

     

    Https tarafından 08/Eyl/19 12:17 tarihinde düzenlenmiştir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    olayin win32 ile bir alakasi yok hocam, bu bahsettigin isaretler attribute olarak geciyor 

    https://www.codeproject.com/Articles/827091/Csharp-Attributes-in-minutes

    Sinif/metod icin yaptiginda bazi kisitlamalar ekleyebiliyorsun. Tekrar tekrar yazmak yerine isini kolaylastiriyor. Genelde bu amacla kullaniliyor.

    örnek vermem gerekirse, bir webservisim var ve classimin icinde bazi metodlar var ve ben bu metodlarda yetki kontrolü yapmak istiyorum. Eger yetkisi varsa bu metodu kullanabilmsin.

    Söyle yaparim mesela

     

    publich IList<Members> GetMembers()

    {

      if(_userHasRight())

    {

    return _db.GetMembers();

    }

    throw new Exception ("Yetkiniz yok");

    }

    ben metodun icinde bu kontrolü yapmak yerine söyle yapabilirim

     

     

    [BenimAuth(yetki="Admin")]

    publich IList<Members> GetMembers()

    {

    return _db.GetMembers();

    }

     

    [BenimAuth(yetki="Admin,Moderator")]

    publich IList<Members> GetLastMember()

    {

    return _db.GetLastMember();

    }

     

    Gördügün gibi metodlara erisim seviesi bile verebilyiorum. Eger yetkisi Admin ise su metodlari cagirabilsin, yani yetkisine göre metodlari cagirabiliyor. Bu metod bazinda, bunu tüm class'a da uygulayabilirsin böylece her metod icin attribute tanimlamak zorunda kalmazsin.

    Benzer seyi property'ler icin de yapabilirsin. Mesela isim alani var ve max 50 ve min 5 karakter girilmesini istiyorsun

    [LenghtControl(MaxLength = 50, MinLength=5)]
    public string Name;

     

    gibi.. Tabi bu attributeler ayri ayri siniflar,metodlar. Bunlarin arkaplanda kodunu yazip, kendi siniflarinda kullanman lazim. Hazir yapilar degil yani.

     

    umarim aciklayici olmustur


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Https
    Https's avatar
    Kayıt Tarihi: 05/Ağustos/2017
    Erkek
    unbalanced bunu yazdı

    olayin win32 ile bir alakasi yok hocam, bu bahsettigin isaretler attribute olarak geciyor 

    https://www.codeproject.com/Articles/827091/Csharp-Attributes-in-minutes

    Sinif/metod icin yaptiginda bazi kisitlamalar ekleyebiliyorsun. Tekrar tekrar yazmak yerine isini kolaylastiriyor. Genelde bu amacla kullaniliyor.

    örnek vermem gerekirse, bir webservisim var ve classimin icinde bazi metodlar var ve ben bu metodlarda yetki kontrolü yapmak istiyorum. Eger yetkisi varsa bu metodu kullanabilmsin.

    Söyle yaparim mesela

     

    publich IList GetMembers()

    {

      if(_userHasRight())

    {

    return _db.GetMembers();

    }

    throw new Exception ("Yetkiniz yok");

    }

    ben metodun icinde bu kontrolü yapmak yerine söyle yapabilirim

     

     

    [BenimAuth(yetki="Admin")]

    publich IList GetMembers()

    {

    return _db.GetMembers();

    }

     

    [BenimAuth(yetki="Admin,Moderator")]

    publich IList GetLastMember()

    {

    return _db.GetLastMember();

    }

     

    Gördügün gibi metodlara erisim seviesi bile verebilyiorum. Eger yetkisi Admin ise su metodlari cagirabilsin, yani yetkisine göre metodlari cagirabiliyor. Bu metod bazinda, bunu tüm class'a da uygulayabilirsin böylece her metod icin attribute tanimlamak zorunda kalmazsin.

    Benzer seyi property'ler icin de yapabilirsin. Mesela isim alani var ve max 50 ve min 5 karakter girilmesini istiyorsun

    [LenghtControl(MaxLength = 50, MinLength=5)]
    public string Name;

     

    gibi.. Tabi bu attributeler ayri ayri siniflar,metodlar. Bunlarin arkaplanda kodunu yazip, kendi siniflarinda kullanman lazim. Hazir yapilar degil yani.

     

    umarim aciklayici olmustur

    Çok teşekkürler hocam.  Açıklama için ayrıca teşekkürler. Tam oturması için pratik yapmak lazım biraz. 

Toplam Hit: 1802 Toplam Mesaj: 3
c# kod analizi