Tag: C#的

提升精神语义动作参数

在这篇关于助推精神语义行为的文章中提到了这一点 实际上还有两个参数被传递:parsing器上下文和一个布尔型“命中”参数的引用。 parsing器上下文只有在语义动作附加到规则的右手边时才有意义。 我们将很快看到更多的信息。 布尔值可以在语义操作中设置为false,使回溯中的匹配无效,从而使parsing器失败。 一切正常,但我一直在试图find一个例子传递一个函数对象作为语义行动,使用其他参数(parsing器上下文和命中布尔),但我还没有find任何。 我很希望看到一个使用常规函数或函数对象的例子,因为我几乎可以挖掘凤凰巫术

C,Python – 模(%)操作的不同行为

我发现,根据使用的语言,相同的mod操作会产生不同的结果。 在Python中: -1 % 10 产生9 在C它产生-1 ! 1)哪一个是正确的模? 2)如何使C中的mod操作与Python中一样?

在C#中使用AppDomain

在C#中AppDomain最重要的用途是什么?

使用Case / Switch和GetType来确定对象

可能重复: C# – 有没有比这更好的替代“打开types”? 如果你想switch一个types的对象,最好的办法是什么? 代码片段 private int GetNodeType(NodeDTO node) { switch (node.GetType()) { case typeof(CasusNodeDTO): return 1; case typeof(BucketNodeDTO): return 3; case typeof(BranchNodeDTO): return 0; case typeof(LeafNodeDTO): return 2; default: return -1; } } 我知道这不是那种方式,但我想知道如何解决这个问题。 在这种情况下, if/else语句是否恰当? 或者你使用开关,并添加.ToString()的types?

从C#中的URIstring获取文件名

我有这个从stringURI抓取文件名的方法。 我能做些什么来使它更强大? private string GetFileName(string hrefLink) { string[] parts = hrefLink.Split('/'); string fileName = ""; if (parts.Length > 0) fileName = parts[parts.Length – 1]; else fileName = hrefLink; return fileName; }

为什么Graphics.MeasureString()返回高于预期的数字?

我正在生成收据,并使用Graphics对象来调用DrawString方法来打印出所需的文本。 graphics.DrawString(string, font, brush, widthOfPage / 2F, yPoint, stringformat); 这工作正常,我需要它做的事情。 我总是知道我打印的是什么,所以我可以手工修剪任何琴弦,使它适合于80mm收据纸。 然后,我不得不添加一些额外的function,这将使这更加灵活。 用户可以传入将被添加到底部的string。 由于我不知道他们要放什么,我只是创build了自己的文字包装函数,它接受了许多字符来包装string本身。 为了找出字符的数量,我做了这样的事情: float width = document.DefaultPageSettings.PrintableArea.Width; int max = (int)(width / graphics.MeasureString("a", font).Width); 现在宽度正在返回给我283,mm为72,这对于80mm纸张的边距是有意义的。 但是MeasureString方法在Courier New 8pt字体上返回10.5。 所以我没有想到36 – 40的时候,我得到26,导致2行文字变成了3-4。 PrintableArea.Width的单位是1/100英寸,graphics对象的PageUnit是Display(它通常是打印机的1/100英寸)。 那为什么我只能拿回26?

如何在Windows下的光标下获取单词?

我想创build一个应用程序,它获取光标下的单词(不仅用于文本字段),但我找不到如何做到这一点。 使用OCR非常困难。 我见过的唯一工作是Deskperience组件。 他们支持“本地”的方式,但我花费了很多。 现在我试图找出这种“本地”方式(也许某种程度上是钩)。 任何帮助将不胜感激。 编辑:我find了一种方式,但它只获取控件的整个文本。 任何想法如何从整个文本只获得光标下的单词?

如何在C#,.NET中播放声音

我有一个用C#/。NET编写的Windows应用程序。 单击button时如何播放特定的声音?

我应该总是返回IEnumerable <T>而不是IList <T>?

当我正在写我的DAL或其他返回一组项目的代码时,我是否应该始终使用我的返回语句: public IEnumerable<FooBar> GetRecentItems() 要么 public IList<FooBar> GetRecentItems() 目前,在我的代码中,我一直试图尽可能使用IEnumerable,但我不确定这是否是最佳实践? 这似乎是正确的,因为我正在返回最通用的数据types,同时仍然描述它的作用,但也许这是不正确的。

以小时显示两个date时间值之间的差异

我正在从数据库中检索两个date时间值。 一旦检索到值,我需要两个值之间的差异。 为此,我创build了一个时间跨度variables来存储两个date值的差异。 TimeSpan? variable = datevalue1 – datevalue2; 现在我需要根据小时数来显示存储在Timespanvariables中的差异。 我提到TimeSpan.TotalHours但由于某种原因不能应用。 我怎么做? 我在一个MVC项目上使用C#。 我简单的需要在几小时内显示差异值? 编辑:由于时间跨度可以为空,我不能使用总小时数属性。 现在我可以使用它做TimeSpanVal.Value.TotalHours ;