我在日常生活中写了相当数量的linq,但大多是简单的陈述.我注意到在使用where子句时,有很多方法可以编写它们,并且每个方法都有相同的结果.例如;
from x in Collection
where x.Age == 10
where x.Name == "Fido"
where x.Fat == true
select x;
Run Code Online (Sandbox Code Playgroud)
至少就结果而言,似乎与此相当:
from x in Collection
where x.Age == 10 &&
x.Name == "Fido" &&
x.Fat == true
select x;
Run Code Online (Sandbox Code Playgroud)
那么语法之外真的有区别吗?如果是这样,首选的风格是什么?为什么?
我对此并不是很有希望,但有没有办法在XAML中组合多种样式来制作具有所有所需设置的新样式?
例如(伪代码);
<Style x:key="A">
...
</Style>
<Style x:key="B">
...
</Style>
<Style x:key="Combined">
<IncludeStyle Name="A"/>
<IncludeStyle Name="B"/>
... other properties.
</Style>
Run Code Online (Sandbox Code Playgroud)
我知道样式有一个'BasedOn'属性,但是这个功能只会带你到目前为止.我真的只是在寻找一种简单的方法(在XAML中)来创建这些"组合"样式.但就像我之前说过的那样,我怀疑它是否存在,除非有人听说过这样的事情?
在过去一年左右的时间里,我看到许多不同的价值转换器出于许多不同的目的,来自许多不同的作者.在我的脑海中突出的一件事是它们返回的"默认"值的广泛变化.例如;
public class MyConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
// OK, we test for some undesirable, unconvertable situation, typically null...
if (value == null)
{
// And here are a variety of 'defaults' that I have seen, these begin the most typical.
return null;
return DependencyProperty.UnsetValue;
return Binding.DoNothing;
}
//...... other code.. whatever...
}}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,是否有一种"标准"方式来表明输入值无法转换?
我正在尝试开始使用Visual Studio(2010)扩展,我很难找到合适的材料.我有SDK,但包含的样本似乎是装饰,窗口和图标.
我正在尝试创建一个可以直接使用文本编辑器的扩展(以字母方式对类中的所有方法名称进行字母顺序排列,或者将所有常量名称设置为大写),但我找不到此类功能的演示,甚至是教程.
有谁知道我在哪里可以找到这种东西?
c# visual-studio-2010 visual-studio visual-studio-extensions
有没有办法在visual studio中执行搜索(在文件中查找/查找),这将排除评论中的匹配?虽然有时它是有用的,但有时它是相反的.对于所有提供的选项,我认为它会在那里,但如果是的话,我找不到它.
顺便说一下,我正在使用VS 2010/2012.
最近我在一些代码中遇到了一个奇怪的模式.我们知道所有事情都有时间和地点,特别是在涉及ABC和接口问题时,但这对我来说似乎是多余的.
// This describes a person....
public interface IPerson
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int BasePay { get; set; }
public string Address { get; set; }
}
// And so does this, but it also uses the interface....
public abstract class Person : IPerson
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int BasePay { get; set; }
public string …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,我用C#编写并在VisualStudio中构建.有一天,我正在探索项目属性部分中的"发布"选项卡,看看它做了什么.现在,每当我构建我的应用程序时,我都会得到一大堆与ClickOnce安装程序相关的文件(*.application,*.deploy等),我不再需要了.在构建项目时如何禁用或以其他方式阻止这些项目出现?
我有重绘WPF控件的问题.
WPF控件作为Windows窗体的ElementHost.Child添加.
当Windows 7进入节电模式并恢复正常时(通过在键盘上移动鼠标或按键),其余的Windows表单控件将重新绘制,但WPF部分不会重新绘制(并且Win 7背景在该地区).
在最小化和最大化应用程序时,WPF部分被重新绘制.
有人对这个问题有任何想法吗?
最近在办公室,我们一直在谈论将大文件放入我们的TFS存储库.这些文件本身就是XML,通常大小为100-200MB,有时甚至大到1GB.我们将它们用作自动化测试的数据,它们大部分都是静态的(每年左右进行一次小调整).无论如何,有一种想法是将这样的文件放入存储库是一个禁忌,因为它们"很大"并且会使事情变得"慢"(在原始登记/退出之外)但我们并不是真的有任何证据支持这一点.
所以我的问题是,将大型静态文件放入源代码存储库(例如TFS(或SVN,Git等)的优点/缺点/含义是否可以?它会"填满服务器"还是会产生其他可怕的后果?
可能重复:
使用C#上的Reflection获取父类
我试图找到一种使用C#中的反射获取某种类型的继承树的简单方法.
假设我有以下课程;
public class A
{ }
public class B : A
{ }
public class C : B
{ }
Run Code Online (Sandbox Code Playgroud)
我如何在类型'C'上使用反射来确定它的超类是'B',谁又来自'A'等等?我知道我可以使用'IsSubclassOf()',但我们假设我不知道我正在寻找的超类.
c# ×6
wpf ×3
inheritance ×1
interface ×1
linq ×1
msbuild ×1
oop ×1
reflection ×1
styles ×1
tfs ×1
tfs2010 ×1
wpf-controls ×1
xaml ×1