C# 使用對象初始化器賦予對象默認值(簡單的寫法)


寫法1:

使用private字段,然后給public字段設置set and get,這樣可以直接給私有字段一個默認值(這個賦值操作可以直接給私有字段,也可以在公共字段的get方法中判斷私有字段是否為空,然后給默認值),具體寫法不再贅述,不會的可以問下度娘,或參考我的博問:

指向博問

缺點:寫法不夠優美,代碼冗余,到處都是set, get之類的

寫法2:

在無參構造函數中給共有字段1個默認值,即賦值操作。由於使用對象初始化器的寫法可以先調用無參構造函數,因此在大括號中的內容被調用時,其實各個屬性均已被賦值.

對象初始化器可以加小括號,也可以不加小括號,直接跟上1個大括號即可

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace ConsoleApplication15
 7 {
 8     class Program
 9     {
10         public class Cell {
11             private int _id;
12             public int ID {
13                 get {
14                     return _id;
15                 }
16                 set {
17                     Console.WriteLine("為ID賦值");
18                     _id = value;
19                 }
20             }
21             public string Name;
22 
23             public Cell() {
24                 Console.WriteLine("Cell構造函數");
25                 this.ID = 1;
26                 this.Name = "小明";
27             }
28         }
29 
30         static void Main(string[] args)
31         {
32             Print(new Cell{ 
33                 ID = 3
34             });
35         }
36 
37         static void Print(Cell c) {
38             Console.WriteLine(c.ID);
39             Console.WriteLine(c.Name);
40         }
41     }
42 }

 1. 說明先調用無參數構造函數.jpg

也可以使用對象初始化器給對象賦值,再調用大括號內的賦值,只需將以上代碼中Cell添加構造函數:

1             public Cell(int _aid) {
2                 Console.WriteLine("Cell 有1個參數的構造函數");
3                 this.ID = _aid;
4             }

在main函數調用處修改為:

1         static void Main(string[] args)
2         {
3             Print(new Cell(1){ 
4                 ID = 3
5             });
6         }

結果如圖:

 

 

 

 

<完>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM