2015-08-08 23 views
19

Tüm temel öğelerin System ad alanının altına girdiğini okudum. using System'u açıklarsam, programımda bir derleme hatası olmasını beklerdim. Ancak, başarılı bir şekilde çalışıyor. Bu neden? intSystem.Int32 için bir başka adıdır ve "Int32" beri zaten (yani. "Tam"), sözdizimi de using System; belirtmek zorunda kalmadan yasal onun ad öneki çünküİlkel veri türleri neden sistem ad alanını dahil etmeden çalışır?

Attached the snap of my sample program.

+4

_Even_ olmadan çalışacak iş :) Sadece bir ipucu, eğer 'int' yerine Int32 diyorsan işe yaramaz. –

+7

'int'' System.Int32' için bir * takma addır (kullanamayacağınız) –

+1

@ AlexK.Kullanıcıyı kullanıyorum; –

cevap

23

O var kodunuzun üstü.

MSDN pasajı aşağıdaki uygulamaları direktifleri kullanarak bir bölümü ile başlayan bu konsept

En C# açıklanır. Bu bölüm, uygulamanın sık sık kullanacağı ad alanlarını listeler ve programlayıcı içerisindeki bir yöntemin kullanıldığı her seferde tam olarak nitelenmiş bir adını belirtmekten kurtarır. Örneğin, satır ekleyerek:

Console.WriteLine("Hello, World!"); 

yerine:

System.Console.WriteLine("Hello, World!"); 

System.Int32 bir programın başlangıcında

using System; 

, programcı kodu kullanabilirsiniz (aka "int") ikinci olur. İşte kodunda bu bir örnektir -

//using System; 

namespace Ns 
{ 
    public class Program 
    { 
     static void Main(string[] args) 
     { 
      System.Int32 i = 2; //OK, since we explicitly specify the System namespace 
      int j = 2;    //alias for System.Int32, so this is OK too 
      Int32 k = 2;   //Error, because we commented out "using System" 
     } 
    } 
} 

hat 11 tam olmadığı için/tam yetkili bir tür yumuşatma, using System; hata için gitme uncommented olması gerekir.

Ek referanslarımız-

+1

Ya monitörüm gamma çıktı veya sizin vizyonunuz bir arıdır;) (renk şeması) – MickyD

+1

Evet .. Genellikle siyah bir arka plan üzerinde kodlar. Sadece renkleri beyaza dönüştürdüm, bu biraz daha iyi olmalı. – iliketocode

+0

Hehe daha iyi. Karanlık düzeni de kullanıyorum sadece _dark blue_ gözümde çılgın şeyler yaptı;) – MickyD

8

olarak daha önce bahsetmişti int, System.Int32 türünde bir takma addır. İlkel türlerin diğer adı, C# dili tarafından dolaylı olarak olarak bilinir.

object: System.Object 
string: System.String 
bool: System.Boolean 
byte: System.Byte 
sbyte: System.SByte 
short: System.Int16 
ushort: System.UInt16 
int:  System.Int32 
uint: System.UInt32 
long: System.Int64 
ulong: System.UInt64 
float: System.Single 
double: System.Double 
decimal: System.Decimal 
char: System.Char 

Yani, ayrıca basit türleri olarak bilinen bu takma adları, herhangi bir ad belirtmek gerekmez: İşte listesidir.

+0

Başka bir deyişle, "derleyici büyüsü". ++ Bu sorunun cevabının çoğunda Q. – RubberDuck

4

Int'i kullandığınızda, temel olarak System.Int32'yi yerleştirirsiniz.Bu tam tür adı olduğundan, aslında gerekmez using System;

Eğer

System.Int32 num = 0; 

Bilseydin tüm ad alanlarını silerseniz Programınız bu olacak, hatta using

+0

Hayır, Sistem'i kullanmıyorsak, derleme hatasını artıracaktır; –

+5

@RajeshPawde hayır olmaz. 'System.Int32' tam olarak nitelendirilmiş ve' 'using System''e ihtiyaç duymuyor;' –

+0

Yukarıdaki hatam işe yarayacak. –

İlgili konular