如果我打开一个保存的项目,其中固定的标签从我上次会话中恢复,当我下次运行我的解决方案时,固定的标签将取消固定.有没有办法解决这个问题?我把它们固定是有原因的,随着解决方案的发展,它变得非常令人沮丧.
假设SomeMethod有签名
public IEnumerable<T> SomeMethod<T>();
Run Code Online (Sandbox Code Playgroud)
两者之间有什么区别吗?
foreach (T tmp in SomeMethod<T>()) { ... }
Run Code Online (Sandbox Code Playgroud)
和
IEnumerable<T> result = SomeMethod<T>();
foreach (T tmp in result) { ... }
Run Code Online (Sandbox Code Playgroud)
换句话说,结果SomeMethod<T>是缓存在第一个语句上还是会在每次迭代时进行评估?
假设我有以下类结构:
public class A {
public string Name { get; set; }
}
public class B : A {
public new string Name {
get { return base.Name; }
set { base.Name = value + " set in B"; }
}
}
public static class Test {
public static void SetAndPrintName<T>(T value, string name) where T : A {
value.Name = name;
Console.WriteLine(value.Name);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我希望运行以下代码的结果:
Test.SetAndPrintName(new A(), "a");
Test.SetAndPrintName(new B(), "b");
----
a
b set in B
Run Code Online (Sandbox Code Playgroud)
相反,我得到:
a …Run Code Online (Sandbox Code Playgroud)