การ Initialize ตัวแปร

การ Initialize ตัวแปร คือการประกาศตัวแปรพร้อมกับใส่ค่าให้ตัวแปรในทันทีในบรรทัดเดียวกัน
ตัวแปรธรรมดาอย่าง String หรือตัวเลข ก็แค่ใส่เครื่องหมาย = ต่อท้ายเข้าไปตอนประกาศ เช่น

Dim i As Integer = 0
Dim s As String = "Hello"
Dim d As Date = #12/31/2007#
int i = 0;
string s = "Hello";
DateTime d = DateTime.Parse("12/31/2007", new CultureInfo("en-US"));

หมายเหตุ: การประกาศวันที่โดยใช้สัญลักษณ์ #เดือน/วัน/ปีคศ# มีแต่ในภาษา VB ไม่มีใน C#

สำหรับตัวแปร Array เราสามารถกำหนดค่าตั้งต้นให้กับ Array ได้โดยใช้วงเล็บปีกกา

Dim sArray As String() = {"x", "y", "z"}
Dim iArray As Integer() = {1, 2, 3}
string[] sArray = { "x", "y", "z" };
int[] iArray = { 1, 2, 3 };

ตั้งแต่ .NET 3.5 เป็นต้นมา ในภาษา VB เราสามารถ Initialize ตัวแปรจำพวก Class หรือ Structure ได้โดยใช้คำสั่ง With และวงเล็บปีกกา พร้อมทั้งระบุชื่อ Field หรือ Property ด้วย ส่วนภาษา C# ไม่ต้องมีคำว่า With ใส่ปีกกาได้เลย

Dim c1 As New System.Windows.Media.Color With {.R=200, .G=100, .B=0 }
Dim frodo As New Person With {.FirstName="Frodo", .LastName="Baggins"}
Dim hobbits As Person() = { _
    New Person With {.FirstName="Frodo"}, New Person With {.FirstName="Samwise"}, _
    New Person With {.FirstName="Meriadoc"}, New Person With {.FirstName="Peregrin"}}
var c1 = new System.Windows.Media.Color() { R=200, G=100, B=0};
var frodo = new Person { FirstName="Frodo", LastName="Baggins"};
var hobbits = new Person[] {
    new Person{ FirstName="Frodo"}, new Person{FirstName="Samwise"},
    new Person{ FirstName="Meriadoc"}, new Person{FirstName="Peregrin"}};

ในบรรทัดที่สามถึงห้าแสดงให้เห็นการผสมกันระหว่างการ Initialize Array และ Class

สำหรับ VB ใน .NET 4 เราสามารถ Initialize คลาสตระกูล ICollection ที่มีเมธอด Add ได้โดยใช้คำสั่ง From ดังนี้

Dim sList As New List(Of String) From {"a", "b", "c"}
' เทียบเท่ากับการสั่ง sList.Add("a"), sList.Add("b"), sList.Add("c")

Dim dict As New Dictionary(Of String, Integer) From {{"a", 20}, {"b", 30}}
' เทียบเท่ากับการสั่ง dict.Add("a", 20), dict.Add("b", 30)

ส่วนใน C# การ Initialize ICollection และเมธอด Add นี้ มีมาตั้งแต่สมัย .NET3.5 แล้ว

var sList = new List<string> {"a", "b", "c"};
// เทียบเท่ากับการสั่ง sList.Add("a"), sList.Add("b"), sList.Add("c")

var dict = new Dictionary<string, int> {{"a", 20}, {"b", 30}};
// เทียบเท่ากับการสั่ง dict.Add("a", 20), dict.Add("b", 30)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: