खोज…


अपरिवर्तनीय संदर्भ प्रकार - स्ट्रिंग

// 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


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow