Tag: .net 4.0

编译表达树误解了吗?

我有这个表达式: Expression<Func> f = s => s.Length < 5; ParameterExpression p = Expression.Parameter (typeof (string), “s”); MemberExpression stringLength = Expression.Property (p, “Length”); ConstantExpression five = Expression.Constant (5); BinaryExpression comparison = Expression.LessThan (stringLength, five); Expression<Func> lambda= Expression.Lambda<Func> (comparison, p); //让:测试 Func runnable = lambda.Compile(); Console.WriteLine (runnable (“kangaroo”)); // False Console.WriteLine (runnable (“dog”)); //True 我想问一下.Compile() 什么编译? 第一次执行与后期执行之间的区别是什么? […]

如何创建开始菜单快捷方式

我正在构建自定义安装程序。 如何在开始菜单中创建可执行文件的快捷方式? 这是我到目前为止所提出的: string pathToExe = @”C:\Program Files (x86)\TestApp\TestApp.exe”; string commonStartMenuPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonStartMenu); string appStartMenuPath = Path.Combine(commonStartMenuPath, “Programs”, “TestApp”); // TODO: create shortcut in appStartMenuPath 我的目标是Windows 7。

为什么直接转换失败但“as”运算符在测试约束generics类型时成功?

“编译一些使用带有类型约束的generics的C#代码时,我遇到了一个有趣的好奇心。 我写了一个快速测试用例来说明。 我在Visual Studio 2010中使用.NET 4.0。 namespace TestCast { public class Fruit { } public class Apple : Fruit { } public static class Test { public static void TestFruit(FruitType fruit) where FruitType : Fruit { if (fruit is Apple) { Apple apple = (Apple)fruit; } } } } 对Apple的强制转换失败并显示错误:“无法将类型’FruitType’转换为’TestCast.Apple’”。 但是,如果我更改行以使用as运算符,它将编译而不会出现错误: Apple apple = fruit […]

如何在C#中固定指向托管对象的指针?

非托管代码调用我的函数。 在第一个函数中,我应该将指针传递给我的托管对象。 有时候稍后我的其他一些函数会被调用与指针之一相同的指针。 我应该取消引用它并使用它来执行一些计算,然后如果不需要处理它。 为了简化故事,我需要固定该对象,以便GC在我处理它之前不会移动它。 如何在C#中做到这一点? 提前致谢。

ItemsControl中的水平定向WrapPanel垂直列出

我在我的XAML中定义了两个DataTemplates,每个都用于一个单独的ItemsControl面板。 主ItemsControl列出了ObservableCollection对象中存储的Foo对象。 Foo对象本身具有作为ObservableCollection对象存储的自己的一组项。 我尝试以允许每个ObservableCollection Foo项目在标题中显示其名称的方式定义XAML(第一个ItemsControl)。 由此,每个Foo项目本身内的列表应水平显示(使用第二个ItemsControl),并在下面直接显示相关字段。 如果存在足够的物品,那么它们应该在必要时包裹到下一行。 这就是UI目前的情况: 这就是我希望UI实际出现的方式: 我的标记(按钮控件用于UI的另一个方面): _Load _Save _Add _Delete DataTemplate用于列出Foo项目: DataTemplate用于列出每个Foo项目中的项目: 我是WPF的新手,所以我觉得这是一个由我如何使用控件引起的问题。 为了生成我想要的UI,我需要做什么改变WPF?

WPF:为代码隐藏中的元素添加一个drophadow效果

我觉得这会很简单,但到目前为止我什么都没发现。 你怎么做呢?

在Parent的构造函数中设置窗口所有者的麻烦

WPF中是否有任何错误,将窗口的Owner属性设置为该父窗口构造函数中的父窗口? 不应该,对吗? 那么为什么我从以下代码中获取XamlParseException ? public partial class MainView : Window { private readonly OwnedWindow owned; public MainView() { InitializeComponent(); owned = new OwnedWindow(); owned.DataContext = DataContext; var window = GetWindow(this); owned.Owner = this; //Setting to window causes the same error … } 我应该澄清一下,删除owned.Owner = this; 还会删除运行时错误。 例外的细节: XamlParseException未处理 在类型’… MainView’上调用与指定绑定约束匹配的构造函数引发了exception。 实际上 ,我查看了内部exception,它说: 无法将Owner属性设置为之前未显示的Window。 所以我现在正在调查。

创建类似ASP.NET MVC 3 ViewBag的类?

我有一种情况,我希望做一些与ASP.NET MVC 3 ViewBag对象(在运行时创建属性)所做的事情相似的事情? 还是在编译时? 无论如何,我想知道如何用这种行为创建一个对象?

.Equals中c#generics方法中的意外行为

为什么Equals方法从generics方法中返回不同的结果? 我认为这里有一些我不明白的自动拳击。 这是一个使用.net 3.5或4.0重现行为的示例: static void Main(string[] args) { TimeZoneInfo tzOne = TimeZoneInfo.Local; TimeZoneInfo tzTwo = TimeZoneInfo.FindSystemTimeZoneById(tzOne.StandardName); Console.WriteLine(Compare(tzOne, tzTwo)); Console.WriteLine(tzOne.Equals(tzTwo)); } private static Boolean Compare(T x, T y) { if (x != null) { return x.Equals(y); } return y == null; } 输出: False True 编辑:此代码按预期工作,没有多少妥协: private static Boolean Compare(T x, T y) { if […]

.NET 4相当于Task.WhenAll()

在.NET 4中,是否有任何function等同于.NET 4.5的System.Threading.Tasks.Task.WhenAll() ? 目标是将多个异步任务包装成一个在完成所有组成任务时完成的任务。