Friday, July 29, 2011

string VS String

เคยสงสัยมั้ยครับ ว่าเวลาเขียน Code แล้วเราจะประกาศตัวแปรที่เป็น string มันมี string กับ String ให้เลือก = ="

แถมสี Hilight ก็ต่างกันอีกต่างหาก แล้วอย่างนี้ มันจะต่างกันมั้ยนะ????

ความจริงแล้ว string กับ String คือ ตัวเดียวกันครับ ถ้าเราลองเอา Mouse ไปวางที่ทั้งสอง Keyword เราจะพบว่ามันเป็น Class เดียวกัน


string เป็นเหมือนชื่อเล่น (Alias) ของ Class String เท่านั้นเองครับ

นอกจากเจ้า string กับ String แล้ว ยังมีตัวอื่นอีกนะครับ ที่มี Alias

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

แต่ในบางกรณี ก็มี Syntax บางอย่างที่ต้องใช้ Alias นะครับ เช่น ตอนที่เราประกาศ enum ตัว Type ที่เราระบุจะต้องเป็น Alias นะครับ

public enum Foo : UInt32 {} // Invalid
public enum Bar : uint {} // Valid

ตัวที่ Hilight เป็นสีน้ำเงิน ความจริง คือ Keyword ครับ ส่วนสีเขียว คือ Class/Struct ซึ่งโดยปกติแล้วเค้าจะใช้ตัว Keyword (Alias) เป็นหลักนะครับ ^^

ใน MSDN จะเขียนไว้เลยว่า string เป็น Alias ของ String ครับ

อ้างอิง: StackOverflow

No comments:

Post a Comment