BEN C# LA ALAKALI SORU ISTIYORUM (ACIL)

kadrıye
15-06-2007, 11:15   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Haz 2007

MRB BENIM C# LA ALAKALI YAZILABILCEK BASIT SEVIYEYE YAKIN PROGRAM KONULARI ISTIYORUM.SINAVIM VAR VE ANLADIGIM KADAR HOCAMIZ GUNCEL AMA DEGISIK SEYLERI SORUYO.MESELA 1 LE 10.000 ARASINDAKI MUKEMMEL SAYILAR.BUNA BENZER SORULARINIZ VARSA GONDERIRMISINIZ PRATIGE IHTIYACIM VAR(YAZILMIS PROGRAMDA OLABILIR INCELEMEK ISTIYORUM)AYRICA DIZILERLE ALAKALI YAZILMIS PROGRAMLAR VE SONUCLARIYLA ALAKALI KAYNAKLARINIZ VARSA ALABILIRIM.KITAPLARI INCELEDIM AMA ARADIGMI PEK BULAMADIM.TESEKKURLER.

omer_6134
15-06-2007, 11:28   |  #2  
Yıllanmış Üye
Teşekkür Sayısı: 6
2,788 mesaj
Kayıt Tarihi:Kayıt: Nis 2007

Ben 15 yaşındayım anlamıyorum onlardan ama internette araştırdım biraz inşallah doğrudur.


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 void 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.

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 void Trace(string s)
    {
        Console.WriteLine(s);
    }
}

class MyClass
{
    public static void 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 void 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 void 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 void 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 void 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 void 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 void 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.

S - 18 : C# derleyicisine bazı dll leri referans vermememe rağmen neden kendisi referans verir.

C - 18 : "csc.rsp" dosyasında bulunan bütün assembly lere C# derleyicisi otomatik olarak referans verir. Bu dosyanın içerdiği assembly leri /r argümanı ile belirtmek zorunda değilsiniz. csc.rsp dosyasının kullanımını komut satırından /noconfig argümanını belirterek engelleyebilirsiniz.

Not : Visual Studio IDE si hiç bir zaman csc.rsp dosyasını kullanmaz.

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

C - 19 : Aşağıda DllImport niteliğinin kullanımına bir örnek verilmiştir.


using System.Runtime.InteropServices;

class C
{
    [DllImport("user32.dll")]
    public static extern int MessageBoxA(int h, string m, string c, int type);

    public static int Main()
    {
        return MessageBoxA(0, "Hello World!", "Caption", 0);
    }
}

Yukarıdaki örnek kod yönetilmeyen(unmanaged) DLL deki doğal(native) bir fonksiyonu C# ta bildirmek için minumum gereksinimleri gösterir.C.MessageBoxA() metodu static ve extern sözcükleri ile bildirilmiş, DllImport niteliği ile bu metodun user32.dll dosyasında MessageBoxA ismiyle uygulanmış olduğu belirtilmektedir.

S - 20 : COM+ runtime'ında tanımlanan bir arayüzü uygulamaya çalışıyorum ancak "public * Object GetObject{...}" çalışmıyor gibi. Ne yapmalıyım?

C - 20 : Managed C++'ta "Object * GetObject()"(object türünden gösterici) sentaksı geçerlidir. C# ta ise "public Object GetObject()" biçiminde kullanmak yeterlidir.

S - 21 : C# şablon(template) yapılarını destekliyormu?

C - 21 : Hayır, fakat bir tür şablon olan generics yapılarının C# diline eklenilmesi planlanmaktadır. Bu türler sentaks olarak şablonlara benzerler fakat derleme zamanı yerine çalışma zamanında oluşturulurlar. Bu türlerle ilgili detaylı bilgi için tıklayın.

S - 22 : Item özelliğini kullandığımda neden CS0117 hatası almaktayım?

C - 22 : C# özellikleri destekler ancak Item özelliğinin sınıflar için özel anlamı vardır. Item özelliği aslında varsayılan indeskleyici olarak yer alır. Bu imkanı C# ta elde etmek için Item sözcüğünü atmak yeterlidir. Aşağıda örnek program gösterilmiştir.

using System;
using System.Collections;

class Test
{
    public static void Main()
    {
        ArrayList al = new ArrayList();
        al.Add( new Test() );
        al.Add( new Test() );
        Console.WriteLine("First Element is {0}", al[0]);
    }
}

WriteLine metodunda .Items[0] 'ın kullanılmadığına dikkat edin.


S - 23 : Herhangi bir fonksiyonumu "out int" parametresi alacak şekilde tasarlmaya çalışıyorum. Bu metoda göndereceğim int değişkenini nasıl bildirmeliyim?

C - 23 : Değişken bildirimi int türünden yapmalısınız fakat bu değişkeni fonksiyona parametre olarak gönderirken aşağıdaki gibi "out" anahtar sözcüğünü de kullanmalısınız.


   int i;
   foo(out i);
foo metodu aşağıdaki gibi bildirilmiştir.
   [return-type] foo(out int o) { }

S - 24 : C++'taki referanslara benzer bir yapı C#' ta varmıdır? (Ör : void foo(int &x) gibi )

C - 24 : C#'ta bunun karşılığı ref parametreleridir.


class Test
{
    public void foo(ref int i)
    {
        i = 1;
    }

    public void bar()
    {
        int a = 0;
        foo(ref a);
        if (a == 1)
            Console.WriteLine("It worked");
    }

    public static void Main() {}
}

Not: Metot çağrımında da ref sözcüğünün kullanıldığına dikkat edin!


S - 25 : C#'ta inout argümanları nasıl bildirilir?

C - 25 : inout'un C# taki karşlığı ref'tir. Örneğin :


public void MyMethod (ref String str1, out String str2)
{
    ...
}

Bu metot aşağıdaki biçimde çağrılmalıdır.

    String s1;
    String s2;
    s1 = "Hello";
    MyMethod(ref s1, out s2);
    Console.WriteLine(s1);
    Console.WriteLine(s2);

Not : Hem metot çağrımı hemde metot bildirimi sırasında ref sözcüğünün kullanıldığına dikkat edin.


S - 26 : Yıkıcı metotlar(destructors) ve GC C#'ta ne şekilde çalışır?

C - 26 : C# ta sonlandırıcı metotlar vardır ve kullanımı aşağıdaki gibidir. (Bu sonlandırıcı metotlar C++ taki yıkıcı metotlara benzer, tek farkı çağrılacağı garanti altına alınmamıştır.)

class C
{
    ~C()
    {
        // your code
    }

    public static void Main() {}
}

Bu metotlar object.Finalize() metodunu aşırı yüklerler ve GC nesneyi yok ederken bu metodu kullanır.


S - 27 : Derleme sırasında neden "CS5001: does not have an entry point defined - tanımlanmış giriş noktası yok- " hatasını alıyorum?

C - 27 : Bu hata en çok Main metodunu main şeklinde yazdığınızda karşınıza çıkar. Giriş noktası olan bu Main metodunun bildirimi aşağıdaki gibi olmalıdır :

class test
{
    static void Main(string[] args) {}
}

S - 28 : Visual J++ ta "synchronized" olarak bildrilen metotları C# diline nasıl taşırım?

C - 28 : Orjinal Visual J++ kodu:

public synchronized void Run()
{
    // function body
}

C# diline taşınmış hali

class C
{
    public void Run()
    {
        lock(this)
        {
            // function body
        }
    }

    public static void Main() {}
}

S - 29 : Kanal(thread) senkronizasyonu(Object.Wait, Notift ve CriticalSection) C#'ta nasıl sağlanır?

C - 29 : lock ile işaretlemiş bloklar bu işe yarar :

lock(obj)
{
    // code
}

kod parçasının karşılığı

try
{
    CriticalSection.Enter(obj);
    // code
}
finally
{
    CriticalSection.Exit(obj);
}

S - 30 : Statik yapıcı metotların sentaksı nasıldır?

C - 30 : Aşağıda MyClass adlı sınıfın statik yapılandırıcısının bildirimi gösterilmiştir.

class MyClass
{
    static MyClass()
    {
        // initialize static variables here
    }

    public static void Main() {}
}


S - 31 : Bir özelliğin get ve set bloklarını farklı erişim belirleyicileri ile bildirmek mümkünmüdür?

C - 31 : Hayır, bir özelliğin belirtilen erişim belirleyicisi aynı zamanda hem get hem de set bloklarınınn erişim belirleyicisidir. Fakat yapmak istediğinizi muhtemelen sadece get bloğu olan yani readonly olarak bildirip set bloğunu private yada internal olan bir metot yapacak şekilde gerçekleştirebilirsiniz.

S - 32 : Tek bir assembly de çoklu dil desteğini nasıl sağlayabilirim?

C - 32 : Bu şu an için Visual Studio.NET tarafından desteklenen bir özellik değildir.

S - 33 : C# dizi türünden olan özellikleri destekliyor mu?

C - 33 : Evet, aşağıda buna bir örnek verilmiştir:

using System;

class Class1
{
    private string[] MyField;

    public string[] MyProperty
    {
        get { return MyField;  }
        set { MyField = value; }
    }
}

class MainClass
{
    public static int Main(string[] args)
    {
        Class1 c = new Class1();

        string[] arr = new string[] {"apple", "banana"};
        c.MyProperty = arr;
        Console.WriteLine(c.MyProperty[0]);  // "apple"
   
        return 0;
    }
}


S - 34 : Birden fazla assembly ile çoklu dil desteği sağlanabilirmi?

C - 34 : Malesef şu an için IDE de bu desteklenmiyor. Bunu yapabilmek için komut satırından projenizi /target:module argümanı ile derleyip modüllere ayırmanız gerekir. Ve oluşturduğunuz bu modülleri birleştirmek için yine komut satırından al(alink) aracını çalıştırarak bu modüllerin birleştirilmesini sağlayın.

S - 35 : COM nesnelerine erişmek için opsiyonel olan parametreleri nasıl simule edebilirim?

C - 35 : Opsiyonel parametreler için System.Reflection altında bulunan Missing sınıfı kullanılır. Her bir parametre için Missing.Value değeri kullanılabilir.

S - 36 : C++'taki varsayılan metot argümanlarının bir karşılığı C#'ta var mı?

C - 36 : Varsayılan argüman desteği yoktur ancak aynı etkiyi metot yükleme ile rahatlıkla yapabilirsiniz.

Bu problem için metot yüklemeyi tercih etmemizin sebebi ileriki zamanlarda kaynak kodu yeniden derlemeden varsayılan argümanı değiştirme imkanı vermesidir. C++ taki varsayılan argümanlar derşenmiş kodun içine gömüldüğü için sonradan bu argümanı kaynak kodu derlemeden değiştirmek mümkün değildir.

S - 36 : İçiçe geçmiş bloklarda yada döngülerde hangi bloğun sonlandırdıldığını belirtmek için kolay bir yol varmıdır?

C - 36 : Bu işin en kolay yolu goto atlama deyimini aşağıdaki gibi kullanmaktır.

using System;
class BreakExample
{
    public static void Main(String[] args)
    {
        for(int i=0; i<3; i++)
        {
            Console.WriteLine("Pass {0}: ", i);
            for( int j=0 ; j<100 ; j++ )
            {
                if ( j == 10) goto done;
                Console.WriteLine("{0} ", j);
            }
            Console.WriteLine("This will not print");
        }
        done:
        Console.WriteLine("Loops complete.");
    }
}

S - 37 : C#'ta deterministik sonlandırmayı nasıl sağlayabilirim.

C - 37 : GC mekanizması gerçek anlamda deterministik yapıda değildir. Yani ne zaman gereksiz nesnelerin toplanacağı kesin olarak belilenmemiştir. Bu yüzden kritik kaynaklara sahip olan nesneleri tasarlamak için IDisposable arayüzünü uygulamış sınıflar tasarlamakta fayda vardır. Aşağıdaki tasarım deseni sınıf için ayrılan kaynağın blok sonunda bırakılacağını bildirmektedir.

using(FileStream myFile = File.Open(@"c:\temp\test.txt", FileMode.Open))
{
  int fileOffset = 0;

  while(fileOffset < myFile.Length)
  {
    Console.Write((char)myFile.ReadByte());
    fileOffset++;
  }
}           

Akış, using bloğunun sonuna geldiğinde myFile nesnesi üzerinden Dispose() metodu çağrılacaktır. Nesneleri bu şekilde using ile kullanabilmek için ilgili sınıfın IDisposable arayüzünü uygulaması gerektiğini unutmayın.

S - 38 : C#'ta metotlar için değişken sayıda argüman (vararg) desteği varmıdır?

C - 38 : params anahtar sözcüğü bir metodun değişken sayıda parametre alabileceğini belirtir. Metot bildiriminde params anahtar sözcüğünden sonra herhangi bir metot parametresi bildirilemez. Ve bir metot için sadece bir tane params anahtar sözcüğünün kullanımına izin verimiştir. Aşağıda params'ın kullanımıa bir örnek verilmiştir.

using System;

public class MyClass
{
   public static void UseParams(params int[] list)
   {
      for ( int i = 0 ; i < list.Length ; i++ )
         Console.WriteLine(list);
      Console.WriteLine();
   }

   public static void UseParams2(params object[] list)
   {
      for ( int i = 0 ; i < list.Length ; i++ )
         Console.WriteLine((object)list);
      Console.WriteLine();
   }

   public static void Main()
   {
      UseParams(1, 2, 3);
      UseParams2(1, 'a', "test");

      int[] myarray = new int[3] {10,11,12};
      UseParams(myarray);
   }
}

Çıktı

1
2
3

1
a
test

10
11
12


S - 39 : C#'ta string türünden bir değişkeni int türüne nasıl dönüştürebilirim?

C - 39 : Aşağıda bu duruma bir örnek verilmiştir.


using System;

class StringToInt
{
    public static void Main()
    {
        String s = "105";
        int x = Convert.ToInt32(s);
        Console.WriteLine(x);
    }
}


S - 40 : C# ile yazılmış uygulamalardan çıkmak için exit() gibi bir fonksiyon varmıdır?

C - 40 : Evet, uygulamadan çıkmak için System.Environment.Exit(int exitCode) metodunu yada uygulamanız bir windows uygulaması ise Aplication.Exit() metotlarını kullanabilirsiniz.

S - 41 : Bütün assembly için özel bir nitelik nasıl belirtilir?

C - 41 : Global nitelikler en tepedeki using deyiminden sonra ve herhangi bir sınıf yada isim alanı bildiriminden önce yapılmalıdır. Örnek :

    using System;

    [assembly : MyAttributeClass]

    class X {}

Not : IDE tarafından yaratılan projelerde bu nitelik bildirimleri AssemblyInfo.cs dosyasında yapılmıştır.


S - 42 : C# ile yazılmış kodu klasik COM istemcilerinin kullanımına sunmak için nasıl kayıt(register) etmeliyim?

C - 42 : regasm aracını kullanarak eğer gerekliyse type library leri oluşturun. Sınıf windows registery ye kayıt edildikten sonra bu sınıfa COM istemcileri tarafından sanki bir COM bileşeniymiş gibi erişilebilir.

S - 43 : Birden fazla derlenecek kaynak kod aynı anda derlendiğinde, çalıştırılabilir dosyanın ismi nasıl belirleniyor?

C - 43 : Çalıştırılabilir dosyanın adı Main metodunun bulunduğu kaynak dosyanın adı ile aynı olur. Komut satırından /out argümanı ile çalıştırılabilir dosyanın adını kendiniz de belirleyebilirsiniz. Örneğin:

C:\ csc /out:Uygulama.exe dosya1.cs dosya2.cs

komutu çalıştırılabilir dosyanın adını Uygulama.exe yapacaktır.


S - 44 : C#'ta String türünden nesneler nasıl karşılaştırılır?

C - 44 : Geçmişte iki stringi == ve != operatörleri ile karşılaştırmak için ToString() metodu kullanılmalıydı. Şu anda ise yine bu yöntem geçerli olmasına rağmen string ler == ve != operatörü ile karşılaştırıldıklarında değişkenlerin referansları yerine onların değerleri karşılaştırılır.

Eğer gerçekten string değişkenlerinin referanslarını karşılaştırmak istersek aşağıdaki kodu kullanabiliriz.

  if ((object) str1 == (object) str2) { ... }

Aşağıda string değişkenlerinin nasıl çalıştığına bir örnek verilmiştir.

using System;
public class StringTest
{
   public static void Main(string[] args)
   {
      Object nullObj = null;
      Object realObj = new StringTest();
      int i = 10;
       
      Console.WriteLine("Null Object is [" + nullObj + "]\n" +
                        "Real Object is [" + realObj + "]\n" +
                        "i is [" + i + "]\n");               
      
      // Show string equality operators
      string str1 = "foo";
      string str2 = "bar";
      string str3 = "bar";

      Console.WriteLine("{0} == {1} ? {2}", str1, str2, str1 == str2 );
      Console.WriteLine("{0} == {1} ? {2}", str2, str3, str2 == str3 );
   }
}

Çıktı
Null Object is []
Real Object is [StringTest]
i is [10]

foo == bar ? False
bar == bar ? True

S - 45 : C++'taki typedef komutunun yaptığı gibi farklı türler için takma isimleri kullanılabilirmi?

C - 45 : Tam olarak değil ama bir dosyada using deyimini aşağıdaki gibi kullanarak herhangi bir türe takma isim verebilirsiniz.

using System;
using Integer = System.Int32; // takma isimi


using deyiminin kullanımı hakkında ayrıntılı bilgi için C# standartlarını incelyin.

S - 46 : C#'ta sınıf ile yapı arasındaki farklar nelerdir?

C - 46 : Sınıflar ve yapılar arasındaki farkların listesi oldukça fazladır. Yapılar sınıflar gibi arayüzleri uygulayabilir ve aynı üye elemanlara sahip olabilirler. Yapılar, sınıflardan bir çok önemli noktada ayrılır; yapılar değer tipleri sınıflar ise referans tipleridir ve türetme yapılar için desteklenmez. Yapılar stack bellek bölgesinde saklanır. Dikkatli programcılar bazen yapıları kullanarak uygulamanın performansını artırabilirler. Mesela Point yapısı için sınıf yerine yapı kullanmak çalışma zamanında tahsis edilen bellek açısından oldukça faydalıdır.

S - 47 : Bir karakterin ASCII kodunu nasıl elde edebilirim?

C - 47 : char türden değişkeni int türüne dönüştürürseniz karakterin ASCII kodunu elde edersiniz.

char c = 'f';
System.Console.WriteLine((int)c);

yada bir string deki herhangi bir karakter için

System.Console.WriteLine((int)s[3]);

kodunu kullanabilirsiniz.

.NET kütüphanesindeki Convert ve Encoding sınıflarının yardımıylada bu işlemi gerçekleştirmek mümkündür.


S - 48 : Versiyonlama bakış açısıyla arayüz türetmenin sınıf türetmeye karşı getirileri nelerdir?

C - 48 : Versiyonlama bakış açısıyla arayüz türetmenin sınıf türetmesine göre daha az esenek olduğunu söylemek mümkündür.

Sınıflarda farklı versiyonlara yeni üye elemanlar örneğin yeni metot eklemeniz mümkündür. Bu metot abstract olmadığı sürece yeni türetilen sınıflar bu metodun fonksiyonalitesine sahip olacaktır. Arayüzler uygulanmış kodların türetilmesini desteklemediği için bu durum arayüzler için geçerli değildir. Bir arayüze yeni bir metot eklemek sınıflara yeni bir abstract metot gibidir. Bu arayüzü uygulayan bir sınıf bu metodu aynen uygulayıp kendine göre anlamlandırmalıdır.


S - 49 : C# koduna inline assembly yada IL kodu yazmak mümkünmüdür?

C - 49 : Hayır.

S - 50 : Bir metodu yada herhangi bir üye elemanının kullanımını sadece belirli bir isim alanı için sınırlayabilirmiyiz?

C - 50 : İsim alanları için bir kısılama yapılamaz çünkü isim alanları koruma amaçlı olarak kullanılmamaktadır ancak internal erişim belirleyicisi ile bir türün sadece ilgili aseembly dosyası içinde kullanılabilecek durumuna getirebiliriz.

S - 51 : try bloğu içerisinde return ile metodu sonlandırısam finally bloğundaki kodlar çalıştırılır mı?

C - 51 : Evet, finally bloğundaki kodlar siz return ile metodu sonlandırsanızda try bloğunun sonuna gelsenizde her zaman çalışacaktır. Örneğin :


using System;
class main
{
    public static void Main()
    {
        try
        {
            Console.WriteLine("In Try block");
            return;
        }
        finally
        {
            Console.WriteLine("In Finally block");
        }
    }
}

programında hem "In try block" hemde "In Finally block" yazıs ekrana yazdırılacaktır. Performans açısından return sözcüğünü try bloğunda yada finally bloğundan sonra kullanmanın bir farkı yoktur. Derleyici yukarıdaki durumda return ifadesinin sanki finally bloğunun dışındaymış gibi davranır. Eğer yukarıda olduğu gibi return deyimi herhangi bir ifade ile kullanılmıyorsa her iki durumdada IL olarak üretilen kodlar aynıdır. Fakat eğer return deyimi bir ifade ile kullanılıyorsa try bloğundaki return ifadesinde ekstradan store ve load deyimlerinin IL de olacağı açıktır.


S - 52 : C# try-catch-finally vloklarını destekliyormu?

C - 52 : Evet destekliyor, aşağıda bu blokların kullanımına bir örnek verilmiştir.


using System;
public class TryTest
{
   static void Main()
   {
      try
      {
         Console.WriteLine("In Try block");
         throw new ArgumentException();
      }
      catch(ArgumentException n1)
      {
         Console.WriteLine("Catch Block");
      }
      finally
      {
         Console.WriteLine("Finally Block");
      }
   }
}

Çıktı
In Try Block
Catch Block
Finally Block


S - 53 : Statik indeksleyici tanımlamak mümkünmüdür?

C - 53 : Hayır. Statik indeksleyici tanımalamaya izin verilmemiştir.


S - 54 : Derleyiciyi /optimize+ argümanı ile çalıştırdığımızda ne gibi optimizasyonlar yapar.

C - 54 : C# derleyicisini yazan takının bu soruya verdiği cevap:

Kullanılmayan lokal değişkenleri atıyoruz. (örnek, hiç okunmayan lokal değişkenler - kendisine değer verilmiş olsa bile-).
Hiç bir şekilde erişilemyecek(unreachable) kodları atıyoruz.
try bloğu boş olan try/catch bloklarını kaldırıyoruz.
try bloğu boş olan try/finally bloklarını kaldırıyoruz.(normal koda çevrlir)
finally bloğu boş olan try/finally bloklarını kaldırıyoruz.(normal koda çevrlir)
Dallanmalarda diğer dallanmaları optimize ediyoruz. Örneğin

gotoif A, lab1
goto lab2:
lab1:

kodu

gotoif !A, lab2
lab1:

koduna dönüştürülür.

We optimize branches to ret, branches to next instruction, branches to branches. Dallanmaları "ret"'e, "next instruction" lara veya diğer "branch" lara dönüştürüyoruz.


S - 55 : C# ile registry'ye nasıl erişebilirim?

C - 55 : Microsoft.Win32 isim alanındaki Registry ve Registry sınıflarını kullanarak bu alana erişmek mümkündür. Aşağıdaki program bir registry anahtarını okuyup değerini yazdırmaktadır.


using System;
using Microsoft.Win32;

class regTest
{
    public static void Main(String[] args)
    {
        RegistryKey regKey;
        Object value;
        regKey = Registry.LocalMachine;
        regKey = regKey.OpenSubKey("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0");
        value = regKey.GetValue("VendorIdentifier");
        Console.WriteLine("The central processor of this machine is: {0}.", value);
    }
}


S - 56 : C# global sabitleri tanımlamak için #define komutunu destekler mi?

C - 56 : Hayır. Eğer C dilindeki aşağıdaki koda benzer bir kullanım elde etmek istiyorsanız

#define A 1

bu kodu kullanabilirsiniz.

class MyConstants
{
   public const int A = 1;
}

Böylece A makrosuna her erişmek istediğinizde MyConstants.A şeklinde bir kullanıma sahip olursunuz.

MyConstants.A şeklindeki kullanım ile 1 sayısının kullanımı arasında bir fark yoktur. Yani aynı kod üretilecektir.


S - 57 : Yeni bir proses çalıştırıp bu proesisin sonlanmasını nasıl bekleyebilirim?

C - 57 : Aşağıdaki kod argüman olarak verilen çalıştırılabilir programı çalıştırı ve çalışan bu programın kapatılması için bekler.

using System;
using System.Diagnostics;

public class ProcessTest {
    public static void Main(string[] args) {
        Process p = Process.Start(args[0]);
        p.WaitForExit();
        Console.WriteLine(args[0] + " exited.");
    }
}

S - 58: Bir metot obsolete olarak asıl işaretlenir?

C - 58 : using System; yazdığınızı varsayarak

[Obsolete]
public int Foo() {...}

yada

[Obsolete("Bu mesaj metodun neden Obsolete olduğunu açıklar.")]
public int Foo() {...}

Not: Obsolete kelimesindeki O harfi büyüktür.


S - 59: using deyimini kaynak koduma eklememe rağmen derleyici tanımlanmamış türlerin bulunduğunu söylüyor. Nerede yanlış yapıyorum acaba?

C - 59 : Büyük bir ihtimalle isim alanının bulunfuğu assembly dosyasını referans vermeyi unutmuşsunuzdur. using deyimi sadece bir sentaksdır. Assembly nin fiziksel olarak konumunu da ayrıca belirtmeniz gerekir. IDE yi kullanarak project menüsünden add reference seöeneği seçip istediğiniz assembly ye referans verebilirsiniz. Komut satırı derleyicisi kullanıyorsanız /r argümanını kullanmalısınız.

S - 60 : Basit bir çok kanallı uygulama için örnek kod var mı?

C - 60 : Evet. örnek :

using System;
using System.Threading;

class ThreadTest
{
    public void  runme()
    {
        Console.WriteLine("Runme Called");
    }  

    public static void Main(String[] args)
    {
        ThreadTest b = new ThreadTest();
        Thread t = new Thread(new ThreadStart(b.runme));
        t.Start();
    }
}


S - 61: Override edilmiş bir metodun temel sınıftaki versiyonunu nasıl çağırabilirim?

C - 61 : Aşağıdaki gibi base anahtar sözcüğünün kullanarak çağırabilirsiniz.

public class MyBase
{
    public virtual void meth()
    {
        System.Console.WriteLine("Test");
    }
}

public class MyDerived : MyBase
{
    public override void meth()
    {
        System.Console.WriteLine("Test2");
        base.meth();
    }

    public static void Main()
    {
        MyDerived md = new MyDerived();
        md.meth();
    }
}


S - 62: C# geliştiricilerini düzenli ifadeler(regex) desteği sunulmuşmudur?

C - 62 : Evet, .NET sınıf kütüphanesi programcılara düzenli ifadelerle çalışmak için System.Text.RegularExpressions isim alanında bir takım sınıflar sağlamaktadır.

S - 63 : C# ile yazmış olduğum uygulamayı çalıştırdığımda neden güvenlik hatası alıyorum?

C - 63 : Bazı güvenlik hataları ağ üzerinde paylaşıma açılmış kaynaklar üzerinde çalışırken alnır. Roaming profilleri, mapped diskler gibi kaynaklar üzerinde çalışmayan bazı sınıflar vardır. Bunun olup olmadığını kontrol etmek için uygulamanızı lokal diskinize alıp yeniden çalıştırmayı deneyin.

Bu tür durumlarda genellikle System.Security.SecurityException istisnai durumu meydana gelir.

Bu tür sorunların üstesinden gelmek için caspol.exe aracı yardımıyla intranet için güvenlik policy nizi codegroup 1.2 ye ayarlayabilirsiniz.


S - 64: try-catch bloklarında faaliyet alanı (scope) problemlerinin üstesinden nasıl gelirim?

C - 64 : try bloğu içinde yarattığınız nesneye catch bloğu içinden erişemezsiniz çünkü try bloğunun sonunda ilgili nesnenin faaliyet alanı bitecektir. Bunun önüne geçmek için aşağıdaki kod bloğu kullanılabilir.

Connection conn = null;
try
{
    conn = new Connection();
    conn.Open();
}
finally
{
    if (conn != null) conn.Close();
}


try bloğundan önde değişkeni null değere atamakla derleyicinin CS0165 (Use of possibly unassigned local variable 'conn' ) hatasını vermesini engellemiş oluruz.


S - 65: .NET geliştirme ortamında regsvr32 ve regsvr32 /u komutlarının karşılığı nedir?

C - 65 : RegAsm aracını kullanabilirsiniz. .NET SDK içinde bu aracın kullanımı hakkında detaylı bilgiyi bulmanız mümkündür.


S - 65: C#, parametreleri özellikleri destekliyor mu?

C - 65 : Hayır, fakat dilin temel yapısında indeksleyici diye ayrı bir kavram vardır.

Bir indeksleyici bir türün dizi gibi indek operatörü ile kullanılabilmesini sağlar.Kısaca özellikler field benzeri erişimi indeskleyiciler ise dizi benzeri erişimi sağlarlar.

Örnek olması açısından daha önce yazdığımız Stack sınıfını düşünün. Bu sınıfı tasarlayan sınıfın üye elemanlarına bir dizi gibi erişilmesini isteyebilir ve böylece gereksiz Pop ve Push çağrımları yapılmamış olur. Yani stack bir bağlı liste gibi tasarlanmış olmasına rağmen bir dizi gibi kullanılabilmektedir.

İndeksleyici bildirimi özellik bildirimine benzemektedir. İki bildirim arasındaki en büyük fark indeksleyicilerin isimlerinin olmamasıdır.(indeskleyici bildiriminde isi yerine this anahtar sözcüğü kullanılır.) Diğer bir fark ise indekleyicilerin indeks parametresi alabilmesidir. Bu indeks parametresi köşeli parantezler içinde yazılır.


cell-o
15-06-2007, 11:28   |  #3  
Yıllanmış Üye
Teşekkür Sayısı: 0
843 mesaj
Kayıt Tarihi:Kayıt: Haz 2006

http://www.csharpnedir.com/kaynakkod.asp?cat=cs

kolay gelsin.

omer_6134
15-06-2007, 11:29   |  #4  
Yıllanmış Üye
Teşekkür Sayısı: 6
2,788 mesaj
Kayıt Tarihi:Kayıt: Nis 2007

doğru veya yanlış ise söyle lütfen veya başka bir şey istiyorsan söyle .........

Caner Güral
15-06-2007, 11:41   |  #5  
Yıllanmış Üye
Teşekkür Sayısı: 0
663 mesaj
Kayıt Tarihi:Kayıt: Şub 2006

@OOOOMMMMEEEERRRR

Arkadaşım eğer anlamadığın bir konu ise arama motorlarından ilgisiz şeyleri bulup buraya rastgele yapıştırmana gerek yok.Forumlarda genelde bilmeyenler bir kenarda bekler.Bekler ki bilenler birşeyler yazsın ve yardımcı olsun.

@Kadriye

Merhaba Kadriye.Bahsettiğin gibi pratikleri aslında senin gibi öğrenci olanların daha çok takıldığı sitelerde görmen daha olası.Mesela programlama.com'a bakabilirsin, orada çok fazla öğrenci var ve çalışmalarını ya da deneyimlerini dökümanlar bölümüne yazıyorlar.Sevgili Cell-o'nun verdiği linke girerek hepimizin daha doğrusu C# ile alakalı sıkıntısı olanların çok şey öğrendiği csharpnedir.com'dan kaynak kodları edinebilrsin.Ancak mesajlarından anlıyorum ki sana böyle daha temel ancak pratik seviyesinde örnekler lazım.

Mademki diziler dedin o zaman benden sana birkaç fikir olsun bunlar.Biz genelde okulda programlamaya ilk başladığımızda hep bunları yapardık.

-Sayısal loto ve bilimum şans oyunları :)
-Zar oyunları
-Belli bir algoritmaya göre sıralanmış sayılardan oluşan programlar
-Matematik formüllerini icra eden fonksiyonlar
-Mükemmel sayı, asal sayı bulan programlar
-Sayı sistemlerini birbirine çeviren örnekler

Bu bahsettiğim örnekleri algoritmalarıyla beraber iyice kavrarsan, programlama konusunda emin ol bayağı yol alırsın.Çünkü genelde forumlarda gördüğün öğrenciler hep sürükle-bırak metoduyla program yaparlar, hazır veritabanı kalıpları kullanırlar. (Editörlerdeki görsel düzenlemeyi kastediyorum)

İşler böyle karışık döngülere, karmaşık dizilere gelince çoğu kişi çuvallar.Dediğim gibi bunları öğrenirsen, onlardan çokça adım önde olacaksındır.

Hoşçakalın.Hepinize iyi günler, iyi çalışmalar dilerim...

omer_6134
15-06-2007, 11:56   |  #6  
Yıllanmış Üye
Teşekkür Sayısı: 6
2,788 mesaj
Kayıt Tarihi:Kayıt: Nis 2007
Caner Güral
@OOOOMMMMEEEERRRR

Arkadaşım eğer anlamadığın bir konu ise arama motorlarından ilgisiz şeyleri bulup buraya rastgele yapıştırmana gerek yok.Forumlarda genelde bilmeyenler bir kenarda bekler.Bekler ki bilenler birşeyler yazsın ve yardımcı olsun.

Aslında haklısın ama ben yardımım dokunur belki diye yazdım ama eğer yanlışsa konu ile bir alakası yoksa söyle silerim mesajlarımı....

müge
15-06-2007, 15:01   |  #7  
Yıllanmış Üye
Teşekkür Sayısı: 0
193 mesaj
Kayıt Tarihi:Kayıt: May 2007

kadriye arkadaşım bende okulda öğrendiğimiz turbo c de yazılmış programlar var.
ben sana bir kaç tane yazayım istersen kodlarınıda yazarım :)

1-Bir işçinin aylık harcamaları; 50 ekmek , 2 kg et,20 kutu yoğurt,5 paket çay, 2 kg. şekerdir.bu harcamaları  o ayki birim fiyatları okutarak hesaplayan programı yazınız.

2-onluk sistemdeki 7 sayısının ikilik sistemdeki karşılığını bularak ekrama yazdıran bir program yazınız.

3-1'den istediğin sayıya kadar olan tek sayıların toplamını bulduran programı for döngüsü kullanarak yazınız.

4-10 elemanlı bir tamsayı dizinin elemanları dışarıdan okutuluyor.okutulacak başka bir değeri bu dizi içinde arayıp bulan ve konumunu ekrana yazdıran programı yazınız.

5-10 elemanlı dışarıdan okutulacak tamsayı bir dizideki elemanlardan yine dışarudan okutulacak bir limit değerinden küçük olanların sayısını bulduran programı yazınız
umarım yardımcı olabilmişimdir.KOLAY GELSİN Beğendim

kadrıye
16-06-2007, 00:47   |  #8  
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Haz 2007

sagolun cok tessekur ederım.omer gonderdıgın seyler bana cok agır.tam aradıgım sey canerın soruları.sınavım kagıt uzerınde kendım yazcam.ben okadar agır yazamam.%60 yazılım %40 test olcak.teste de hazır kodlar olcak ben ne yaptığnı bulcam.muge ye de ayrıca tesekkurler.hepsının ustunde durcam yınede

kadrıye
16-06-2007, 11:45   |  #9  
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Haz 2007

MUGE GONDERDIGIN SORU TIPLERI VARDIYA ONLARIN BEN COZUMLERINIDE ALABILIRIM ASLINDA.BELKI TAM AYNI DEGILDIR AMA BIRBIRINE YAKINDIR HERALDE.BEN ONLARII YINEDE BI INCELEYEYIM.COK TESEKKURLER...
Beğendim

kadrıye
16-06-2007, 11:58   |  #10  
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Haz 2007

SLM CANER.
Sayısal loto ve bilimum şans oyunları :)
-Zar oyunları
-Belli bir algoritmaya göre sıralanmış sayılardan oluşan programlar
-Matematik formüllerini icra eden fonksiyonlar
-Mükemmel sayı, asal sayı bulan programlar
-Sayı sistemlerini birbirine çeviren örnekler
LERIN PROGRAM YAZILIMLARI SENDE VARSA ALABILIRMIYIM.BIDE BU KONULARA NASIL ULASTIGNI.BEN C#NEDIR.COM A GIRMISTIM AMA BU TUR SEYLERE RASTLAMADIN DIYE HATIRLIYORUM.BIRAZ DAHA YARDIMCI OLURMUSUN.OLURSAN COK MAKBULE GECECEK.TESEKKURLER

Caner Güral
16-06-2007, 12:16   |  #11  
Yıllanmış Üye
Teşekkür Sayısı: 0
663 mesaj
Kayıt Tarihi:Kayıt: Şub 2006

Csharpnedir.com'da böyle şeyler pek bulamazsınız.Mağlumunuz bu örnekler hep başlangıç için çerez niteliğinde.

Örnekleri yukarıda dediğim gibi programlamaya ilk başladığım yıllar yapıyordum ve Pascal ile yazıyordum.Daha doğrusu 10.sınıfta yken.Şua hiçbiri elimde değil malesef.

müge
16-06-2007, 12:38   |  #12  
Yıllanmış Üye
Teşekkür Sayısı: 0
193 mesaj
Kayıt Tarihi:Kayıt: May 2007

1-Bir işçinin aylık harcamaları; 50 ekmek , 2 kg et,20 kutu yoğurt,5 paket çay, 2 kg. şekerdir.bu harcamaları o ayki birim fiyatları okutarak hesaplayan programı yazınız.

#include<stdio.h>
#include<conio.h>
int a,b,c,d;
float x,y,t;
void main()
{
clrscr();
printf("ekmeğin alış fiyatını giriniz:");
scanf("%d",&a);
printf("aylık alınan ekmek sayısını giriniz:");
scanf("&d",&b);
x=a*b;
printf("etin kilosunun alış fiyatını giriniz:);
scanf("%d",&c);
printf("aylık alınan etin kilosunu giriniz:");
scanf("%d",&d);
y=c*d;
t=x+y;
printf("toplam aylık harcamanız:%f'dir",t);
getch();
}


2-onluk sistemdeki 7 sayısının ikilik sistemdeki karşılığını bularak ekrama yazdıran bir program yazınız.

#include<stdio.h>
#include<conio.h>
int a=7,y,z,t,b,b2,b3;
void main()
{
clrscr();
y=a\2;b=a%2;
z=y\2;b2=z%2;
t=z\2;b3=t%2;
printf("onluk tabanlı 7 sayısının ikilik tabanda karşılığı %d,%d,%d'dır",b,b2,b3);
getch();
}


3-1'den istediğin sayıya kadar olan tek sayıların toplamını bulduran programı for döngüsü kullanarak yazınız.

#include<stdio.h>
#include<conio.h>
int a,toplam;
void main()
{
clrscr();
for(a=1;a<=istediğin sayı;a+=2)
toplam=toplam+a;
printf("%d",toplam);
getch();
}

4-10 elemanlı bir tamsayı dizinin elemanları dışarıdan okutuluyor.okutulacak başka bir değeri bu dizi içinde arayıp bulan ve konumunu ekrana yazdıran programı yazınız.

#include<stdio.h>
#include<conio.h>
int i,a[10],sayi;
void main()
{
clrscr();
printf("dizi elemanlarını giriniz:\n");
for(i=0;i<=9;i++)
{printf("dizi[%d]:",i);
scanf("%d",&a);
}
printf("aranılacak deger:");
scanf("%d",sayi);
for(i=0;i<=9;i++)
if(a==sayi)
{
printf("%d sayısı dizinin %d elemanlı indisli elemanıdır",sayi,i);
break;
}
getch();
}

5-10 elemanlı dışarıdan okutulacak tamsayı bir dizideki elemanlardan yine dışarudan okutulacak bir limit değerinden küçük olanların sayısını bulduran programı yazınız

#include<stdio.h>
#include<conio.h>
int i,a[10],l,adet=0;
void main()
{
clrscr();
printf("dizi elemanlarını giriniz:\n");
for(i=0;i<=9;i++)
{
printf("dizi[%d]:",i);
scanf("%d",&a);
}
printf("limit:");
scanf("%d",&l);
for(i=0;i<=9;i++)
adet+=(a<l);
printf("%d'den küçük sayılar %d tanedir",l,adet);
getch();
}

çıktısı

Dizi elemanlarını giriniz:
dizi[0]:56
dizi[1]:12
dizi[2]:14
dizi[3]:23
dizi[4]:22
dizi[5]:32
dizi[6]:45
dizi[7]:33
dizi[8]:35
dizi[9]:89
Limit:40
40'tan küçük sayılar 7 tanedir.

kadrıye
16-06-2007, 12:39   |  #13  
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Haz 2007

PEKI BEN 10.SINIF KITAPLARINDA FELAN BU TUR SEYLER BULABILIRMIYIM.NE TUR KITAPTI BUNLAR

kadrıye
16-06-2007, 12:44   |  #14  
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Haz 2007

COK SAGOL MUGE.BIZ #include<stdio.h>
#include<conio.h>
KISMINI HIC KULLANMIYORUZ ONUN YERINE YAZCAM ACABA BILIYOMUSUN.YADA HIC YAZMICAM MI.GONDERDIGIN SEYLERI KENDIM YAZMAYA CALISCAM INŞ. ACBILIRIM.Alkış

müge
16-06-2007, 12:53   |  #15  
Yıllanmış Üye
Teşekkür Sayısı: 0
193 mesaj
Kayıt Tarihi:Kayıt: May 2007

bunlar bizim turbo c 'de kullandığımız derleyici önbildirimler.
her programa bunlarla başlıyoruz.
c#'de bu nasıl oluyor yani böyle önbildirimler kullanılıyormu bilmiyorum.
önceki yazdığınız programlara bak.direkt olarak değişkenlerle yani int , float gibi şeylerle başlamışsanız gönderdiğim programların o derleyici kısımlarını atlayabilirsin.
ayrıca torbo c de yazılmış bir program c# derleyicisinde çalışırmı bilemiyorum. ama bu program kodlarını kendine göre yani c# komutlarına göre uyarlayıp (mesela turbo c'de printf ekrana yazdırma komutudur. basic'te sadece print'tir)yazarsan pek sorun çıkacağını sanmıyorum
sana kolay gelsin :)

kadrıye
16-06-2007, 15:23   |  #16  
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Haz 2007

BIZ WINDOWS TA CALISMIYORUZ MSDOS TA CALISIYORUZ ONLA ALAKALI SANIRIMÇCOK SAGOL HERSEY ICIN