*Sitemize Üye Olunca Elinize Ne Geçer?

<--- 1. Üye Olarak Linkleri Görebilirsiniz... --->

<--- 2. İstediğiniz Kadar Paylaşım Yapabilirsiniz... --->

<--- 3. Güzel Bir Forum Hayatı Yaşayabilirsiniz... --->


Join the forum, it's quick and easy


*Sitemize Üye Olunca Elinize Ne Geçer?

<--- 1. Üye Olarak Linkleri Görebilirsiniz... --->

<--- 2. İstediğiniz Kadar Paylaşım Yapabilirsiniz... --->

<--- 3. Güzel Bir Forum Hayatı Yaşayabilirsiniz... --->

Would you like to react to this message? Create an account in a few clicks or log in to continue.

● En Güncel Paylaşım Platformu ●

---Misafir--- Hos Geldiniz Daha iyi Bir Hizmet İçin Üye olunuz.ÜyeLer Link GörebiLir

    C# ile ilgili Sıkça Sorulan Sorular

    MnyTirith
    MnyTirith
    ● Admin ●
    ● Admin ●


    <b>Doğum tarihi</b> Doğum tarihi : 20/06/90

    C# ile ilgili Sıkça Sorulan Sorular Empty C# ile ilgili Sıkça Sorulan Sorular

    Mesaj tarafından MnyTirith Ptsi Mart 08, 2010 11:44 pm

    S=Soru
    C=Cevap


    S - 1 : DllImport niteliğini neden
    çalıştıramıyorum?




    C - 1 : DllImport ile işaretlenen bütün metotlar public
    static extern olarak bildirilmelidir.






    S - 2 : Yazdığım switch ifadeleri farklı
    bir biçimde çalışıyor. Neden?


    C - 2 : C# case blokları için "explicit fall through"
    özelliğini desteklemez. Buna göre aşağıdaki kod parçası geçersizdir ve
    C#'ta derlenemez.


    switch(x)
    {
    case 0:
    // bir şeyler yap
    case 1:
    // 0 case'indekine ek olarak birşeyler daha yap
    default:
    // 0 ve 1 durumlarına ek olarak birşeyler daha yap

    break;



    }
    Yukarıdaki kodun verdiği etkiyi C# ile aşağıdaki gibi
    gerçekleştirrebiliriz. (Case' ler arasındaki akışın açıkça
    belirtildiğine dikkat edin!)


    class Test
    {
    public static **** Main()
    {
    int x = 3;

    switch(x)


    {
    case 0:
    // bir şeyler yap
    goto case 1;
    case 1:
    // 0 case'indekine ek olarak birşeyler daha yap
    goto default;
    default:
    // 0 ve 1 durumlarına ek olarak birşeyler daha yap
    break;
    }
    }
    }

    S - 3: const ve static readonly
    arasındaki farklar nelerdir?


    C - 3 : static readonly elemanlar bulundukları sınıfın üye
    elemanları tarafından değiştirilebilir(!)* fakat const olan üye
    elamanlar asla değiştirilemez ve derleme zamanı sabiti olarak ilk
    değerleri verilmelidir.


    [size=9]static readonly üye elemanlarının değiştirilebilmesini biraz
    açacak olursak* static readonly üyeyi içeren sınıf bu üyeyi aşağıdaki
    durumlarda değiştirebilir :


    - değişken ilk değer verilen durumda
    - static yapıcı metotlar içinde

    S - 4 : trace ve asssert
    komutlarını nasıl gerçekleyebilirim?


    C - 4 : Metotlarla birlikte Conditional niteliğini
    kullanarak gerçekleyebiliriz.


    class Debug
    {
    [conditional("TRACE")]
    public **** Trace(string s)
    {
    Console.WriteLine(s);
    }
    }

    class MyClass


    {
    public static **** Main()
    {
    Debug.Trace("hello");
    }
    }
    Yukarıdaki örnekte Debug.Trace() metodu ancak ve ancak TRACE
    önişlemci seöbolü tanımlanmışsa çağrılacaktır. Komut satırından ön
    işlemci sembollerini tanımlamak için /D parametresi kullanılabilir.
    Conditional niteliği ile bildirilen metotların geri dönüş değerinin ****
    olma zorunluluğu vardır.


    S - 5 : C#'ta dll oluşturmak
    için ne yapmalıyım?


    C - 5 : Derleyicinin /target:library argümanını kullanmanız
    gerekir.




    S - 6 : checked isimli bir
    değişken tanımladığımda neden derleme zamanında "syntax error" hatası
    alıyorum?


    C - 6 : Çünkü checked C#'ta bir anahtar sözcüktür.


    S - 7 : Bir yapıcı metot içinde
    aşırı yüklenmiş başka bir yapıcı metot nasıl çağrılır (this() ve
    yapıcımetotadı() şeklindeki çağrımlar derlenmiyor)?


    C - 7 : Diğer bir yapıcı metot aşağıdaki gibi çağrılabilir.


    class B
    {
    B(int i)
    { }
    }

    class C : B



    {
    C() : base(5) // B(5) i çağırır.
    { }

    C(int i) : this() // C() yi çağırır.



    { }

    public static **** Main() {}




    } S - 8 :
    C#'ta Visual J++ ta bulunan instanceof operatörünün karşılığı varmıdır?


    C - 8 : Evet* is operatörü bunun karşılığıdır.
    Kullanımı aşağıdaki gibidir :


    ifade is tür


    S - 9 : C#'ta enum sabitleri
    nasıl kullanılır.


    C - 9 : enum türlerinin kullanımına bir örnek :


    namespace Foo
    {
    enum Colors
    {
    BLUE*
    GREEN
    }

    class Bar



    {
    Colors color;
    Bar() { color = Colors.GREEN;}

    public static **** Main() {}


    }
    }

    S - 10 : Geri dönüş değeri
    olmayan bir metot bildirimi yaptığımda neden (CS1006) hatası almaktayım?


    C - 10 : Bir metodun geri dönüş değerini yazmadan
    bildirirseniz derleyici onu sanki bir yapıcı metot bildiriyormuşsunuz
    gibi davranır. O halde geri dönüş değeri olmayan bir metot bildirimi
    için **** anahtar sözcüğünü kullanın. Aşağıda bu iki kullanıma örnek
    verilmiştir.

    // Bu bildirim CS1006 hatası verir.
    public static staticMethod (mainStatic obj)

    // Bu metot ise istenildiği gibi çalışır



    public static **** staticMethod (mainStatic obj)

    S - 11 : Her birinde farklı
    Main() metodu olan birden fazla kaynak kod dosyam var: derleme sırasında
    hangi Main() metodunun kullanılacağını nasıl bildirebilirim?


    C - 11 : Programınızın giriş noktası(metodu) Main isimli
    herhangi bir parametre almayan yada string türünden bir dizi parametresi
    alan geri dönüş değeri **** yada int olan static bir metot olmalıdır.


    C# derleyicisi programınızda birden fazla Main metodu
    bildirmenize izin verir fakat hangi Main() metodunu kullanacağınızı
    derleme zamanında bildirmeniz gerekir. Main() metodunu belirtirken Main
    metodunun bulunduğu sınıfın tam yolunu belirtmeniz gerekir. Komut
    satırından kullanılan /main argümanı bu işe yarar.(Örn : csc
    /main:MainSınıfı *.cs)


    S - 12 : Console.WriteLine()
    metodu bir string içinde NULL karakteri gördüğünde ekrana yazma işlemini
    durdururmu?


    C - 12 : Çalışma zamanı için string türleri NULL ile
    sonlandırılmış türler değildir. Dolayısıyla bir string içine NULL
    karakteri gömebilirsiniz. Console.WriteLine() ve buna benzer metotlar
    string değişkeninin sonuna kadar işlem yaparlar.



    S - 13: C# ta "Multicast
    Delegate"(çoklu temsilciler) bildirmek mümkünmüdür* mümkünse sentaksı
    nasıldır?


    C - 13 : Bütün temsilciler varsayılan olarak multicast
    olarak bildirilir. Dolayısıyla Visual J++ taki gibi ayrıca multicast
    anahtar sözcüğü yoktur.




    S - 14:
    Delegate/MulticastDelegate (Temsilciler) nasıl bildirilir?


    C - 14 : C# ta temsilci bildirimi için sadece bir
    parametreye ihtiyacımız vardır : metot adresi. Diğer dillerden farklı
    olarak C# ta metodun adresi aynı zamanda bu metodun hangi nesne
    üzerinden de çağrılacağını tutabilir* diğer dillerde ise temsilcilern
    temsil etttiği metodu çağırabilmek için ayrıca nesnelere ihtiyaç
    duyulur. Örneğin System.Threading.ThreadStart() metodunun kullanımına
    bakalım.


    Foo MyFoo = new Foo();
    ThreadStart del = new ThreadStart(MyFoo.Baz);
    Bu* static ve instance metotlarının aynı sentaks ile
    çağrılabileceğini göstermektedir.


    S - 15: Yaptığım windows pencere
    uygulamasını her çalıştırdığımda neden pop up şeklinde konsol ekranı
    gösteriliyor.


    C - 15 : Proje ayarlarında "Target Type" özelliğinin Console
    Application yerine Windows Application olduğuna emin olun. Eğer komut
    satırı derleyicisini kullanıyorsanız /target:exe argümanı yerine
    /target:winexe argümanını kullanın.




    S - 16: Gereksiz çöp
    toplayısınıcı(Garbage Collection) zorla çağırmanın bir yolu var mı?


    C - 16 : Evet; Bütün referasnları null değer atayın ve
    System.GC.Collect() statik metodunu çağırın.


    Yıkılması(destruct) gereken nesneleriniz var ve GC nin bunu
    yapmadığını düşünüyorsanız nesneleri null değere atayarak onların
    sonlandırıcı metotlarının çağrılmasını sağlayın ver ardından
    System.GC.RunFinalizers() metodunu çağırın




    S - 17: C#* C dilindeki
    makroları destekliyormu?


    C - 17 : Hayır* C# ta makro yoktur.

    __LINE__ ve __FILE__ gibi C dilinde önceden tanımlanmış bazı
    makroların System.Diagnostics isim alanındaki StackTrace ve StackFrame
    gibi COM+ ile ilgili sınıflardan elde edilebileceğini unutmayın. Fakat
    bunlar sadece Debug moddaki derleme için çalışacaktır

      Forum Saati Paz Nis. 28, 2024 5:14 am