C# Language
अंतर्निहित प्रकार
खोज…
अपरिवर्तनीय संदर्भ प्रकार - स्ट्रिंग
// assign string from a string literal
string s = "hello";
// assign string from an array of characters
char[] chars = new char[] { 'h', 'e', 'l', 'l', 'o' };
string s = new string(chars, 0, chars.Length);
// assign string from a char pointer, derived from a string
string s;
unsafe
{
fixed (char* charPointer = "hello")
{
s = new string(charPointer);
}
}
मान प्रकार - चार
// single character s
char c = 's';
// character s: casted from integer value
char c = (char)115;
// unicode character: single character s
char c = '\u0073';
// unicode character: smiley face
char c = '\u263a';
मान प्रकार - लघु, इंट, लंबे (16 बिट पर हस्ताक्षर किए, 32 बिट, 64 बिट पूर्णांक)
// assigning a signed short to its minimum value
short s = -32768;
// assigning a signed short to its maximum value
short s = 32767;
// assigning a signed int to its minimum value
int i = -2147483648;
// assigning a signed int to its maximum value
int i = 2147483647;
// assigning a signed long to its minimum value (note the long postfix)
long l = -9223372036854775808L;
// assigning a signed long to its maximum value (note the long postfix)
long l = 9223372036854775807L;
इन प्रकारों को अशक्त बनाने के लिए भी संभव है, जिसका अर्थ है कि सामान्य मूल्यों के अतिरिक्त, नल को भी सौंपा जा सकता है। यदि एक अशक्त प्रकार के चर का आरम्भ नहीं किया जाता है, तो यह 0. के बजाय शून्य हो जाएगा। प्रकार के बाद प्रश्न चिह्न (?) जोड़कर अशक्त प्रकारों को चिह्नित किया जाता है।
int a; //This is now 0.
int? b; //This is now null.
मान प्रकार - ushort, uint, ulong (अहस्ताक्षरित 16 बिट, 32 बिट, 64 बिट पूर्णांक)
// assigning an unsigned short to its minimum value
ushort s = 0;
// assigning an unsigned short to its maximum value
ushort s = 65535;
// assigning an unsigned int to its minimum value
uint i = 0;
// assigning an unsigned int to its maximum value
uint i = 4294967295;
// assigning an unsigned long to its minimum value (note the unsigned long postfix)
ulong l = 0UL;
// assigning an unsigned long to its maximum value (note the unsigned long postfix)
ulong l = 18446744073709551615UL;
इन प्रकारों को अशक्त बनाने के लिए भी संभव है, जिसका अर्थ है कि सामान्य मूल्यों के अतिरिक्त, नल को भी सौंपा जा सकता है। यदि एक अशक्त प्रकार के चर का आरम्भ नहीं किया जाता है, तो यह 0. के बजाय शून्य हो जाएगा। प्रकार के बाद प्रश्न चिह्न (?) जोड़कर अशक्त प्रकारों को चिह्नित किया जाता है।
uint a; //This is now 0.
uint? b; //This is now null.
मान प्रकार - बूल
// default value of boolean is false
bool b;
//default value of nullable boolean is null
bool? z;
b = true;
if(b) {
Console.WriteLine("Boolean has true value");
}
बूल कीवर्ड System.Boolean का एक उपनाम है। इसका उपयोग बूलियन मूल्यों को true
और false
रखने के लिए चर घोषित करने के लिए किया जाता है।
बॉक्सेड मूल्य प्रकारों के साथ तुलना
यदि मान प्रकार को वे object
बॉक्स प्रकार के चर के लिए असाइन किए जाते हैं - तो मान System.Object
की आवृत्ति में संग्रहीत किया जाता है। ==
, जैसे ==
साथ तुलना करने पर यह अनपेक्षित परिणाम पैदा कर सकता है:
object left = (int)1; // int in an object box
object right = (int)1; // int in an object box
var comparison1 = left == right; // false
अतिभारित Equals
पद्धति का उपयोग करके इससे बचा जा सकता है, जो अपेक्षित परिणाम देगा।
var comparison2 = left.Equals(right); // true
वैकल्पिक रूप से, एक ही unboxing के द्वारा किया जा सकता है left
और right
चर ताकि int
मूल्यों की तुलना की जाती:
var comparison3 = (int)left == (int)right; // true
बॉक्सिंग मूल्य प्रकारों का रूपांतरण
बॉक्सेड मान प्रकार केवल उनके मूल Type
में अनबॉक्स किए जा सकते हैं, भले ही दो Type
का रूपांतरण मान्य हो, जैसे:
object boxedInt = (int)1; // int boxed in an object
long unboxedInt1 = (long)boxedInt; // invalid cast
इसे मूल Type
में पहले अनबॉक्सिंग से रोका जा सकता है, जैसे:
long unboxedInt2 = (long)(int)boxedInt; // valid