[原创]c# 类中 Collection 字段初始化的特殊之处
2021-02-17 02:19
阅读:524
1.今天看一下StackExchange.Redis的源代码,里面有这样一段代码
public sealed class ConfigurationOptions : ICloneable { ... public EndPointCollection EndPoints { get { return this.endpoints; } } ... }
调用时是这样调用的
var option = new ConfigurationOptions() { AbortOnConnectFail = false, EndPoints = {connectionString} };
顿时感觉到诧异,不明白为什么只有get方法的属性可以被初始化时赋值,如果是非初始化的赋值是不行的
//option.EndPoints={connectionString}; 这个可以理解,这是编译不通过的
但是实在不理解为什么初始化时可以.
于是测试了以下代码(结果是编译不通过)
internal class CustomerComponent { private Customer names; public Customer Names { get { return this.names; } } } var customerComponent = new CustomerComponent() { Names = customers[0] };
又测试了下面的(奇迹出现了,编译通过了)
internal class CustomerList { private Liststring> names; public Liststring> Names { get { return this.names; } } } var customerList= new CustomerList() { Names = {"1","2"} };
internal class CustomerList2 { private Listnames; public List Names { get { return this.names; } } } var customerList2 = new CustomerList2() { Names = { new Customer() { Name = "G" }, } };
一直不明白为什么,但是大概总结出来规律, 就是只有Collection类型的字段,才可能如此!
如果有知道的朋友,麻烦告知我为什么.
文章来自:搜素材网的编程语言模块,转载请注明文章出处。
文章标题:[原创]c# 类中 Collection 字段初始化的特殊之处
文章链接:http://soscw.com/index.php/essay/56375.html
文章标题:[原创]c# 类中 Collection 字段初始化的特殊之处
文章链接:http://soscw.com/index.php/essay/56375.html
评论
亲,登录后才可以留言!