Tag: c#

内存中.NET值类型的布局

我有以下.NET值类型: [StructLayout(LayoutKind.Sequential)] public struct Date { public UInt16 V; } [StructLayout(LayoutKind.Sequential)] public struct StringPair { public String A; public String B; public String C; public Date D; public double V; } 我有代码将指向值类型的指针传递给非托管代码,以及通过调用System.Runtime.InteropServices.Marshal.OffsetOf发现的偏移量。 非托管代码填充Date和double值。 为StringPair结构报告的偏移正是我所期望的:0,8,16,24,32 我在测试函数中有以下代码: FieldInfo[] fields = typeof(StringPair).GetFields(BindingFlags.Instance|BindingFlags.Public); for ( int i = 0; i > field {0} @ offset {1}”, fields[i].Name, offset)); } […]

C#Silverlight 3 – 以编程方式在页面之间导航?

假设我有一个包含多个页面的C#Silverlight 3应用程序。 第一页称为Home,第二页称为Details。 导航到详细信息的唯一方法是以编程方式。 我该怎么做呢?! 到处寻找答案,我发现的都是xaml uri mapper实现…. 非常感谢

CreateInstanceAndUnwrap和Domain

我有一个属性,其实例我想在其他域中。 public ModuleLoader Loader { get { if(_loader == null) _loader = (ModuleLoader)myDomain.CreateInstanceAndUnwrap( this.GetType().Assembly.FullName, “ModuleLoader”, false, System.Reflection.BindingFlags.CreateInstance, null, null, null, null); System.Diagnostics.Debug.WriteLine(“Is proxy={0}”, RemotingServices.IsTransparentProxy(_loader)); //writes false _loader.Session = this; return _loader; } } 这很好用。 但我假设_loader实例上的所有方法调用都将在其他域(myDomain)中调用。 但是当我运行以下代码时,它仍然会编写主应用程序域。 public void LoadModule(string moduleAssembly) { System.Diagnostics.Debug.WriteLine(“Is proxy={0}”, RemotingServices.IsTransparentProxy(this)); System.Diagnostics.Debug.WriteLine( AppDomain.CurrentDomain.FriendlyName); System.Diagnostics.Debug.WriteLine(“———–“); } 是因为Unwrap()? 我在哪里做错了? 我知道AppDomain会创建单独的内存。 我需要的是我的主应用程序运行,它在不同的AppDomain中加载模块。 由于主应用程序还希望观看模块的一些活动以及与在单独域中运行的对象进行交互,因此实现它的最佳方法是什么。

为什么我只能从静态函数访问静态成员?

我在一个类中有一个静态函数。 每当我尝试使用非静态数据成员时,我都会遇到编译错误。 非静态字段,方法或属性成员需要对象引用 为什么它表现得那样?

PropertyInfo.GetValue() – 如何使用C#中的reflection索引到generics参数?

这个(缩短的)代码.. for (int i = 0; i < count; i++) { object obj = propertyInfo.GetValue(Tcurrent, new object[] { i }); } ..正在抛出’TargetParameterCountException:参数计数不匹配’exception。 ‘propertyInfo’的基础类型是一些T的集合。’count’是集合中的项目数。 我需要遍历集合并对obj执行操作。 建议表示赞赏。

以快速的方式找到LIne和网格之间的交点

反正有没有让我找到一条线和一个网格之间的所有交叉点? (交叉圆圈不是按比例绘制的,我知道) 蛮力方式是计算xy网格与线的非常交集,但是该算法非常低效( O(m*n) ,其中m是x网格的数量, n是y网格的数量)。 我正在寻找一个更好的算法。

使用GroupBy和Average将SQL转换为lambda LINQ

我花了几个小时试图将简单的SQL翻译成lambda LINQ SELECT ID, AVG(Score) FROM myTable GROUP BY ID 任何的想法?

显示自定义控件的自定义图标?

在visual studio中创建自定义控件时,您可以获得此选项 丑陋的小紫色齿轮用于控制图标而不是自定义控件 。 那么如何更改我的控件图标呢?

为什么我不能使用Lambda表达式取消订阅事件?

本文说明您无法使用Lambda表达式取消订阅事件 。 例如,您可以订阅如下: d.Barked += (s, e) => Console.WriteLine(“Bark: {0}”, e); 但你不能这样取消订阅: d.Barked -= (s, e) => Console.WriteLine(“Bark: {0}”, e); 为什么? 这与代表取消订阅有什么区别,例如 EventHandler handler = (s, e) => Console.WriteLine(“Bark: {0}”, e); d.Barked += handler; // … d.Barked -= handler;

GridView OnSelectedIndexChanged事件未触发

我试图获取GridView的选定行,我知道我应该能够根据OnSelectedIndexChanged事件获取该信息。 每当我点击该行时,该事件都不会触发。 protected void GridView1_SelectedIndexChanged2(object sender, EventArgs e) { //string company = GridView1.SelectedRow.Cells[0].Text; Response.Redirect(“Client_View.aspx”, false); } 任何帮助都将不胜感激。 我可以看到没有代码重置其对另一个事件的引用,我可以看到。