VS编译器不允许为WINMD类型库创建密封的公开类型.
为什么要放置此限制?(我知道密封类型的优点,我的问题是关于Win RT组件).
Linq Query中声明的局部变量的范围是什么.
我正在编写以下代码
static void Evaluate()
{
var listNumbers = Enumerable.Range(1, 10).Select(i => i);
int i = 10;
}
Run Code Online (Sandbox Code Playgroud)
编译器标记的错误在行int i = 10,说明
A local variable named 'i' cannot be declared in this scope because it would give a different meaning to 'i', which is already used in a 'child' scope to denote something else
Run Code Online (Sandbox Code Playgroud)
我无法理解为什么会出现这个错误.
我的理解是,i在第一行之后(在foreach循环中)将超出范围.所以i可以再次宣布.
实际行为是i在第一行(在foreach循环中)之后无法访问,这是正确的.但i不能再宣布.这看起来很奇怪.
编辑这是基于安德拉斯的回应的以下问题.答案非常好,但会引起进一步的质疑.
static void Evaluate3()
{
var listNumbers = Enumerable.Range(1, 10).Select(i => i);
var listNumbers1 …Run Code Online (Sandbox Code Playgroud) 这是一个显示虚拟方法的小代码.
class A
{
public virtual void F() { Console.WriteLine("A.F"); }
}
class B: A
{
public override void F() { Console.WriteLine("B.F"); }
}
class C: B
{
new public virtual void F() { Console.WriteLine("C.F"); }
}
class D: C
{
public override void F() { Console.WriteLine("D.F"); }
}
class Test
{
static void Main()
{
D d = new D();
A a = d;
B b = d;
a.F();
b.F();
}
}
Run Code Online (Sandbox Code Playgroud)
此代码打印以下输出:
B.F
B.F
Run Code Online (Sandbox Code Playgroud)
我不明白为什么aF()会打印BF?
我认为它将打印DF,因为B类覆盖了A类的F(),然后使用"new"关键字将此方法隐藏在C类中,然后再次在D类中重写.所以最后DF保持不变.
但它不是那样做的.你能解释为什么要打印BF吗?
为了清理测试文件,我尝试执行以下操作.但它不清除文件以及不生成错误.
我错过了一些明显的东西吗
private void CleanUpTempDirFiles()
{
var fileGenerationDir = new DirectoryInfo(Path.Combine(Path.GetTempPath(), "TestFilesDir"));
fileGenerationDir.GetDirectories().ToList().ForEach(dir => dir.GetFiles().ToList().ForEach(file => file.Delete()));
}
Run Code Online (Sandbox Code Playgroud) 我需要帮助创建一个lambda表达式来查询以下列表,以便检索每个通道中价格最低的项目.即,对于该示例项目A,D和G.
class Radio
{
public string Name { get; set; }
public int Channel { get; set; }
public decimal Price { get; set; }
}
List<Radio> radios = new List<Radio>();
radios.Add(new Radio() { Name = "A", Channel = 1, Price = 10 });
radios.Add(new Radio() { Name = "B", Channel = 1, Price = 20 });
radios.Add(new Radio() { Name = "C", Channel = 1, Price = 30 });
radios.Add(new Radio() { Name = "D", Channel = 2, Price …Run Code Online (Sandbox Code Playgroud) 如何将TDD应用于具有分层架构的企业应用程序?
我想知道如何将TDD应用于具有以下功能的应用程序
据我所知,首先是让架构正确.结果,识别出组件.接下来是独立开发组件,我卡住了.
使用TDD,(组件的)设计随着时间的推移而发展.对于下面的组件是(我认为)与TDD一起使用的方式
我面临的问题是,对于组件,直到我到达TDD过程的第6步,我不知道接口.由于有多个组件,多个团队,没有人确定他们会想出什么.
现在基于上述场景的摘要问题
我在C#中编写了一个类,我希望在控制台中显示.但我无法展示它.
我的程序没有任何错误,这意味着程序运行它但我看不到结果:(
请帮我解决这个问题.
我正在阅读Inside C#,我偶然发现了Type.IsAutoClass.
文件说
如果为Type选择了字符串格式属性AutoClass,则为true;否则为false.否则,错误.
问题是AutoClass它影响的是什么以及如何影响Type?
请注意,这是一个学术问题,并且在项目中没有实际用法(据我所知),我与之相关.
是否可以(如果是的话)将多值绑定表达式添加到资源中.
我有一个多值绑定,它在其中一个绑定中采用2个单独的绑定和转换器参数.
我必须将此绑定用于5个不同的项目,并且这些绑定标记仅在转换器参数中有所不同.休息一切都一样.
我想避免重复多绑定样板标签.
我试图理解Action<T>, Func<T> and Predicate<T>代表之间的差异,作为我的WPF/MVVM学习的一部分.
我知道Action<T> and Func<T>两个都是零到一个+参数,只Func<T>返回一个值,而Action<T>不是.
至于Predicate<T>- 我不知道.
因此,我提出了以下问题:
Predicate<T>办?(欢迎举例!)Action<T>返回,那么使用它会不会更简单?(或任何其他类型,如果我们正在讨论.)voidFunc<T>我希望你在问题中避免使用LINQ/List示例.
我已经看过那些了但是它们只是让它变得更加混乱,因为让我对这些代表"感兴趣"的代码与它无关(我想!).
因此,我想使用我熟悉的代码来获得我的答案.
这里是:
public class RelayCommand : ICommand
{
readonly Action<object> _execute;
readonly Predicate<object> _canExecute;
public RelayCommand(Action<object> execute)
: this(execute, null)
{
}
public RelayCommand(Action<object> execute, Predicate<object> canExecute)
{
if (execute == null)
throw new ArgumentNullException("execute");
_execute = execute;
_canExecute = canExecute;
}
[DebuggerStepThrough]
public bool CanExecute(object parameters)
{
return …Run Code Online (Sandbox Code Playgroud) c# ×9
.net ×8
linq ×3
wpf ×3
architecture ×1
autoclass ×1
binding ×1
closures ×1
console ×1
delegates ×1
file ×1
inheritance ×1
lambda ×1
multibinding ×1
mvvm ×1
output ×1
reflection ×1
sealed ×1
tdd ×1
types ×1
wcf ×1
windows-8 ×1
winrt-xaml ×1
xaml ×1