如果我有一个封闭的路径,我可以使用Geometry.GetArea()来近似我的形状区域.这很棒,节省了我很多时间.但周围有什么可以帮助我找到一条未封闭路径的长度吗? 我现在能够想出的最好的方法是确保我使用PathGeometry并多次调用GetPointAtFractionLength方法,得到点并加上所有这些点之间的距离. 码:public double LengthOfPathGeometry(PathGeometry path, double steps){Point pointOnPath;Point previousPointOnPath;Point tangent;do...
请考虑以下代码:private Dictionary<RobotSettings, Trader> createTradersFor(IEnumerable<RobotSettings> settings) {var traderSet = new Dictionary<Tuple<IGateway, IBroker>, Trader>();return settings.ToDictionary(s => s, s =>{var key = Tuple.Create(s.gateway, s.broker);Trader trader = traderSet.TryGetValue(key, out trader)? trader: traderSet[key] = new Trader(s.gateway, s.broker);return trader;}); }我...
我有以下简单的代码绘制矩形<Canvas Name="MainImageLayer" ><Image ><Image.Source ><DrawingImage xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" ><DrawingImage.Drawing > <DrawingGroup><DrawingGroup.Children><GeometryDrawing><GeometryDrawing.Pen><Pen Brush="#FF1acc33" Thickness="1" /></GeometryDrawing.Pen><GeometryDrawing.Brush><SolidColorBrush>Red</SolidCo...
所以我在LinqPad左右徘徊并注意到一些奇怪的东西,我在Visual Studio测试代码单元测试中得到相同的结果. 我正在玩数值数据类型的所有不同的TryParse.在此期间,我注意到double.TryParse的行为与其余部分有所不同. 例如:var doubleStr = double.MinValue.ToString(); //doubleStr = -1.79769313486232E+308double result; var result = double.TryParse(doubleStr, out result); //result is returning false具有MinValue的所有其他数...
我正在为一个项目编写一堆集成测试.我想调用包含在try / catch块中的每个单独的集成点方法,这样当它失败时,我会得到某种反馈来显示,而不是仅仅崩溃应用程序.我还希望能够计算调用的时间,并在需要时检查返回值.所以,我有一个IntegrationResult类,其中包含一些基本描述,结果和时间已过去的属性:class IntegrationResult {private StopWatch _watch;public string Description {get;set;}public string ResultMessage {get;set;}publ...
我正在尝试使用datetime.tryparse但是当传递“10.2”时它会成功并填充当前年份.我希望它只有在通过10.31.12或31.10.12等时才能成功.谢谢解决方法:你的意思是你希望它只有在匹配一个确切的格式时才能成功?然后使用DateTime.TryParseExact :)请注意,允许“10.31.12”和“31.10.12”这是一个坏主意 – 否则“03.04.12”的意思是什么?您的数据来自哪里 – 用户或其他系统?如果它是另一个系统,您应该使用不变文化和自定义格式字符串....
我正在尝试使用WPF创建自定义形状.对于初学者我只是想创建一个简单的线,每端都有一个圆圈(我知道有LineCaps,但这不是我想要的). 我已经研究了一些教程和最简单的方法,似乎使用了CombinedGeometry.但是我无法让它正常工作.这是我创建几何对象的代码:protected override Geometry DefiningGeometry{get{Point ellipseCenter1 = new Point(X1 - this.CapDiameter / 2, Y1 - this.CapDiameter / 2);Point ellipseCenter2 = new Point(...
我试图使用hashSet方法,它需要HashEntry []数组.HashSet(RedisKey key, HashEntry[] hashFields, CommandFlags flags = CommandFlags.None);我试图这样做,但这显然不起作用…… 我有字典值HashEntry[] hash = new HashEntry[value.Count]();int index = 0;foreach (var item in value){hash[index].Name = item.Key;hash[index].Value = item.Value;index++;}解决方法:HashEntry是不可变的;你需要:hash[index++] = new HashEntry(...
我们在这个论坛上看到过很多关于try-catch-finally和try-finally结构的问题. 答案的数量增加了问题的数量,所以我也很少. 这里是a link进入微软解释试试 – 终极建设.我已经读过了! 在下面的文章中写道:Within a handled exception, the associated finally block is guaranteedto be run. However, if the exception is unhandled, execution of thefinally block is dependent on how the exception unwind operation istrigger...
我目前正在重构代码以将Convert.To替换为TryParse. 我遇到了以下一些代码,它们创建并为对象分配属性.List<Person> list = new List<Person>();foreach (DataRow row in dt.Rows) {var p = new Person{ RecordID = Convert.ToInt32(row["ContactID"]) };list.Add(p); }我作为替代品提出的是:var p = new Person { RecordID = Int32.TryParse(row["ContactID"].ToString(), out RecordID) ? RecordID : RecordID };有什么想法,意见,...
有没有办法在Main()的应用程序中使用单个try-catch捕获所有异常,而不管应用程序中的线程和appdomains? 换句话说,我只想使用一个try-catch来记录我的应用程序中的所有错误,而不是在不同的地方使用多个try catch. 非常感谢任何想法或代码片段…… 编辑:我正在使用控制台应用程序和Windows服务.解决方法:看看http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception.aspx和http://msdn.microsoft.com/en-us/l...
我刚看到这行C#代码,我想知道它是否很贵Assembly assembly = useEntryAssembly ? Assembly.GetEntryAssembly() : Assembly.GetCallingAssembly();解决方法:除非你经常这样打电话,否则昂贵是相当微小的,我不担心. 在我的机器上,Assembly.GetEntryAssembly()在调试模式下随机运行时第一次需要164个滴答,下一个需要7个滴答.如果没有使用Reflector深入潜水,它似乎正在缓存这些电话. 我的机器上每秒有2597734个刻度,因此164对7仍然不重要...
这是一个“好”的代码?try{ /*stuff*/ }catch (Exception e){ /*stuff*/ }finally{try{ /*stuff*/ }catch { /*empty*/ }}我需要在finally中执行复杂的操作,它可能会崩溃,因为它连接到数据库 这看起来很奇怪,所以.这是正确的方法吗?解决方法:这实际上将取决于你正在做什么,但就个人而言,如果它真的是在另一个尝试捕获并在操作后完成我不会将它嵌套在最终,只是把它作为另一个尝试捕获.这将消除其中的一些“奇怪”.
我在我们的项目中继承了代码,看起来像这样.这是课堂上的一种方法.protected override bool Load() {DataAccess.SomeEntity record;try{record = _repository.Get(t => t.ID.Equals(ID));if (record == null){throw new InvalidOperationException("failed to initialize the object.");}else{this.ID = record.ID;// this.OtherProperty = record.SomeProperty;// etc} }catch (Exception){throw;}return true; }如果我然后从我的U...
我使用无状态框架(https://code.google.com/p/stateless/)在我的应用程序中建模有限状态机.某些状态应该执行某些逻辑,然后立即进入下一个状态.我想知道这样做的好习惯如下:var machine = new StateMachine<State, Trigger>(State.Idle);machine.Configure(State.StateA).OnEntry(() =>{DoSomeStuff();_machine.Fire(Trigger.TriggerB); // move to StateB});这是一个很好的FSM设计吗?如果没有,那会有什么更好的方法?我试图实...