class Immutability
{
class Message
{
public Message(string from, string to,
string body, string subject = null,
byte[] attachment = null)
{
// Normal initialization code would go here
}
}
static void Main()//使用C#4构造不易变的消息
{
Message message = new Message(
from: "skeet@pobox.com",
to: "csharp-in-depth-readers@everywhere.com",
body: "I hope you like the third edition",
subject: "A quick message"
//this {Chapter13.Immutability.Message}
//from "skeet@pobox.com"
//to "csharp-in-depth-readers@everywhere.com"
//body "I hope you like the third edition"
//subject "A quick message"
//attachment null
);
}
}
不需要设计大量用于选择的构造函数,只需要准备一个包含一些可选参数的构造函数即可。它与
对象初始化程序也不同,相同的语法还可以用于静态创建方法。唯一的缺点是,你的代码必须
由支持可选参数和命名实参的语言消费。否则调用者将不得不编写丑陋的代码来指定所有可选
参数的值。显然,对于不易变性的支持,相比从初始化代码中取值来说还差得很远,但这仍然是
向正确方向迈出的受欢迎的一步。
无输出