当从拥有 auto 属性的类中调用初始化器时,为什么可以使用对象初始化器来设置私有 set auto 属性?我以两个类为例。
public class MyClass
{
public string myName { get; private set; }
public string myId { get; set; }
public static MyClass GetSampleObject()
{
MyClass mc = new MyClass
{
myName = "Whatever", // <- works
myId = "1234"
};
return mc;
}
}
public class MyOtherClass
{
public static MyClass GetSampleObject()
{
MyClass mc = new MyClass
{
myName = "Whatever", // <- fails
myId = "1234"
};
return mc;
}
}
Run Code Online (Sandbox Code Playgroud) .net c# initialization automatic-properties object-initializers
我的印象是我可以创建一个LINQ查询,然后在更改所涉及的参数时重复使用它.但似乎你无法改变源集合.有人可以给我一个很好的解释,为什么,因为我明显误解了一些基本的东西.
这是一些示例代码.
var source = Enumerable.Range(1, 10);
var value = source.Where(x => x > 5);
var first = value.ToArray();
source = Enumerable.Range(11, 20);
var second = value.ToArray();
Run Code Online (Sandbox Code Playgroud)
我期待第一个是6,7,8,9,10,第二个是11到20.
我正在构建机器上设置TeamCity 7.0.3.除了使用Jabber通知程序的Google Talk通知之外,一切正常.当我发送测试通知时,它工作正常.但是当构建完成/失败时,我没有收到任何通知.通知使用系统托盘通知程序在计算机上本地工作.我已经注册了所有项目和所有活动,但暂时没有任何事情发生.我使用相同的Gmail帐户发送消息,以接收它可能有点奇怪,但测试消息工作.这可能是我想的防火墙问题,但测试消息再次起作用.
有任何想法吗?