Tag: c# 4.0

找到两个3D线段之间的最短距离

我有两个线段,在开始/结束点用3D点表示。 线: class Line { public string Name { get; set; } public Point3D Start { get; set; } = new Point3D(); public Point3D End { get; set; } = new Point3D(); } 坐标X,Y和Z的3D点数仅为3倍。 3DPoint: class Point3D { public double X { get; set; } public double Y { get; set; } public double Z […]

在三个combobox中显示日期

我是.net的初学者。 我需要在三个不同的combobox中显示day , month和year 。 为了让他们充实,我正在尝试从1950年到现在的硬编码值。 我后来意识到我还需要检查二月(28天),闰年和其他问题。 没有硬编码值,还有其他方法可以做到这一点。 在互联网上搜索答案时,我遇到了不想使用的datepicker和monthcalendar(因为我的项目应该是我使用datepicker和monthcalendar的其他朋友的独特)。 或者如果您有任何其他建议而不是combobox,请分享。 我相信之前有人问过这个问题。 我不介意你指导链接。 在nikhil agrawal回答之后编辑: 工作守则: cmbDay —> combobox cmbMonth —> combobox cmbYear —> combobox FormLoad事件 this.cmbYear.Leave+=new EventHandler(cmbYear_Leave); this.cmbDay.Leave += new EventHandler(cmbYear_Leave); this.cmbMonth.Leave += new EventHandler(cmbYear_Leave); // for (int i = 1950; i < 2012; i++) { cmbYear.Items.Add(i.ToString()); } for (int i = 1; i < […]

PostSubmitter的异步CTP

我正在尝试构建一个REST客户端使用Async CTP。 我是CTP的新手,因此,通过互联网上的一些例子,我得到了一个仅用于发布(GET或POST)的clas。 到目前为止这是class级: using System; using System.Collections.Specialized; using System.IO; using System.Net; using System.Text; using System.Threading.Tasks; using System.Web; namespace RESTClient.Core { /// /// Submits post data to a url. /// public class PostSubmitter { #region Backing Store private string m_url = string.Empty; private NameValueCollection m_values = new NameValueCollection(); private PostTypeEnum m_type = PostTypeEnum.Get; #endregion #region […]

在GMap.net中缩放和平移

我正在尝试使用WPF内置事件启用GMap.Net控件多点触控,但我没有成功。 我发现了一系列关于多点触控的文章,就像这个和这个一样。 在所有这些中, ManipulationContainer是一个canvas和可移动控件放在它上面,但在GMap问题中, ManipulationContainer是GMapControl并且无法控制它。 我如何使用e.ManipulationDelta数据进行缩放和移动? GMapControl具有Zoom属性,通过增加或减少它,您可以放大或缩小。

使用嵌套的lambda表达式集合来创建对象图

我有兴趣利用lambda表达式来创建属性选择器树。 使用场景是我们有一些代码对对象图进行一些递归reflection,并且为了限制递归的范围,我们当前正在使用Attributes来标记应该遍历哪些属性。 ie获取对象的所有修饰属性,如果该属性是具有修饰属性的引用类型,则对每个属性重复。 使用属性的限制是您只能将它们放在您控制源的类型上。 lambda表达式树允许在任意类型的公共成员上定义范围。 使用速记方式定义这些表达式会很方便,这反映了对象图的结构。 最终,我喜欢这样的事情: Selector selector = new [] { (t => Property1), (t => Property2) { p => NestedProperty1, p => NestedProperty2 } }; 现在,我能做的最好的事情就是为每个节点声明一个实例,如下所示: var selector = new Selector() { new SelectorNode(t => Property1), new SelectorNode(t => Property2) { new SelectorNode(p => NestedProperty1), new SelectorNode(p => NestedProperty2) }, }; 这段代码没有任何问题,但你必须明确地为每个节点写出类型参数,因为编译器无法推断出类型参数。 […]

在html中使用c#来执行if语句

我以前在Stackoverflow上看到过涉及使用’c#construct’在asp.net页面的html中执行’if’语句的答案。 所以想象一下,如果选项1为空,我想显示Eval(“option1”),如果它不为空或者Eval(“option2”)。 我该怎么做呢??? 希望有道理…… 非常感谢!!!!

如何评估ExpressionVisitor中的表达式?

在执行Expression之前,我需要使用ExpressionVisitor来分析它。 根据我的需要,我需要评估Divide表达式的正确部分,但我不知道该怎么做。 这是我的示例代码: internal class RulesChecker : ExpressionVisitor { private readonly object data; public RulesChecker(object data) { this.data = data; } protected override Expression VisitBinary(BinaryExpression node) { if (node.NodeType == ExpressionType.Divide) { var rightExpression = node.Right; // compile the right expression and get his value } return base.VisitBinary(node); } } 假设我有这个代码来评估: Expression<Func> expression = x […]

跟踪多步骤任务的进度

我正在开发一个向客户端公开Web服务的简单服务器。 某些请求可能需要很长时间才能完成,并且在逻辑上分为多个步骤。 对于此类请求,需要在执行期间报告进度。 此外,可以在前一个请求完成之前启动新请求,并且要求两个请求同时执行(禁止某些特定于系统的限制)。 我想让服务器将TaskId返回给它的客户端,并让客户端使用TaskId跟踪请求的进度。 我认为这是一个很好的方法,我留下了如何管理任务的问题。 从未使用过TPL,我认为这是解决这个问题的好方法。 实际上,它允许我同时运行多个任务,而无需手动管理线程。 我甚至可以使用ContinueWith相对容易地创建多步骤任务。 但是,我无法想出一种跟踪任务进度的好方法。 我意识到,当我的请求包含一个“步骤”时,该步骤必须合作报告其状态。 在这一点上,我宁愿避免这种情况。 但是,当请求包含多个步骤时,我想知道当前正在执行哪个步骤并相应地报告进度。 我能想到的唯一方法是非常无聊: Task firstTask = new Task( () => { DoFirstStep(); return 3.14; } ); firstTask. ContinueWith( task => { UpdateProgress(“50%”); return task.Result; } ). ContinueWith( task => { DoSecondStep(task.Result); return “blah”; }. ContinueWith( task => { UpdateProgress(“100%”); return task.Result; } ). 即使这并不完美,因为我希望Task能够存储自己的进度,而不是让UpdateProgress更新一些已知的位置。 […]

如何使用C#更改命令提示符中的目录位置?

我通过以下代码使用C#成功打开了命令提示符窗口。 Process p = new Process(); p.StartInfo.FileName = “cmd.exe”; p.StartInfo.WorkingDirectory = @”d:\pdf2xml”; p.StartInfo.WindowStyle = ProcessWindowStyle.Normal; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardInput = true; p.Start(); p.StandardInput.WriteLine(@”pdftoxml.win32.1.2.7 -annotation “+filename); p.StandardInput.WriteLine(@”cd D:\python-source\ds-xmlStudio-1.0-py27″); p.StandardInput.WriteLine(@”main.py -i example-8.xml -o outp.xml”); p.WaitForExit(); 但是,我也通过命令来更改目录。 问题: 如何更改目录位置? Cmd提示将在打开后始终显示… 请指导我摆脱这些问题……

通过reflection获取对象

我正在寻找c#这样的机制: Car car1; Car car2; Car car = (Car)SomeMechanism.Get(“car1”); car1和car2是领域 所以我想用reflection得到一些对象,而不是键入:/我怎么能在c#中做到?