草庐IT

文字过滤

全部标签

c# - 为什么 Environment.NewLine = "\r\n"而字符串文字中的 "\n"功能相同?

在C#中,如果您执行类似stringnewLine=Environment.NewLine;的操作并检查newLine的值,您会发现它是"\r\n”。但是,如果我做类似的事情;string[]test=newstring[]{"one","two","three"};Console.WriteLine("Withplainslashn:");Console.Write(String.Join("\n",test));Console.WriteLine("\nWithEnvironment.NewLine:");Console.Write(String.Join(Environment.

c# - 编译器是否优化了字符串文字?

C#编译器或.NETCLR是否对字符串文字/常量进行了巧妙的内存优化?我可以发誓我听说过“字符串内部化”的概念,因此在程序中的任何两位代码中,文字“这是一个字符串”实际上指的是同一个对象(大概是安全的,字符串是什么不可变的?)。虽然我在Google上找不到任何有用的引用...我是不是听错了?别担心-我不会用这些信息在我的代码中做任何可怕的事情,只是想更好地理解它在幕后是如何工作的。 最佳答案 编辑:虽然我强烈怀疑下面的陈述对于所有C#编译器实现都是正确的,但我不确定它是否在规范中得到实际保证。规范的第2.4.4.5节讨论了引用相同字

c# - 解析小数并过滤右边多余的0?

我从一个XML文件中收到以下格式的小数:1.1320006.000000目前我正在像这样使用Decimal.Parse:decimalmyDecimal=Decimal.Parse(node.Element("myElementName").Value,System.Globalization.CultureInfo.InvariantCulture);如何将myDecimal打印成字符串看起来像下面?1.1326 最佳答案 我不认为有任何标准的数字格式字符串总是会忽略尾随的无意义的零,恐怕。您可以尝试编写自己的十进制规范化方法,但

c# - 过滤字符串

我想确保一个字符串只有这个范围内的字符[a-z]&&[A-Z]&&[0-9]&&[-]所以所有字母和数字加上连字符。我试过这个...C#应用程序:char[]filteredChars={',','!','@','#','$','%','^','&','*','(',')','_','+','=','{','}','[',']',':',';','"','\'','?','/','.','','\\','|'};strings=str.TrimStart(filteredChars);这个TrimStart()似乎只适用于字母而不适用于$%等其他字符我是不是执行错了?有更好的方法吗?我

c# - C# 如何知道文字的类型?

考虑这段代码:doublei=0xF0000000;Console.WriteLine(0xF0000000.GetType());Console.WriteLine(i.GetType());为什么C#为第一个打印System.UInt32而为第二个打印System.Double?是不是因为编译器默认将文字推断为var类型? 最佳答案 在这一行中:doublei=0xF0000000;literal是uint类型,但它被隐式转换为double。当您调用i.GetType()时,总是打印System.Double,因为变量的类型是d

c# - 从触摸屏重定向/重新映射/预过滤光标输入

我的问题好的,对此的基本答案是使用:Cursor.Clip=newRectangle(x1,y1,x2,y2);但我的问题有点复杂。我需要它做的是正确地将自己映射到特定的窗口边界,这样触摸输入将被限制在那个窗口,但会正确地将自己剪裁到窗口,这样当我触摸左上角时触摸屏的一角或右下角,它会将光标放在窗口的左上角或右下角。使用Cursor.Clip不会这样做,并且我在触摸屏上触摸的所有超出该剪辑区域的内容都会映射到离我触摸的位置最近的窗口边缘。有什么可以让我预过滤鼠标位置以便正确调整它的边界吗?如果其他都失败了或者,我可以尝试找到一些代码,将鼠标输入转换为TUIO输入,并以此方式将其输入到应

c# - 全局异常过滤器或 Application_Error 都没有捕获未处理的异常

我有一个名为LogErrorAttribute的全局异常过滤器:publicclassLogErrorAttribute:IExceptionFilter{privateILogUtilslogUtils;publicvoidOnException(ExceptionContextfilterContext){if(this.logUtils==null){this.logUtils=StructureMapConfig.Container.GetInstance();}this.logUtils.LogError(HttpContext.Current.User.Identity.G

c# - 过滤包括 LINQ 和 Entity Framework 中的项目

这个问题在这里已经有了答案:EF:Includewithwhereclause[duplicate](5个答案)关闭1年前。目前我的应用程序中有此LINQ/EF代码:varrootCategoryItem=DatabaseContext.Categories.Include("SubCategories").OrderBy(c=>c.CategoryOrder).Single(c=>c.CategoryId==1);我知道在EF中你还不能过滤包含的项目,我可以写一些LINQ代码来过滤掉不需要的子类别......但是LINQ代码被转换成一个可怕的SQL,这是非常不-优化。我也可以编写一个

c# - 过滤掉 Type.GetMethods() 返回的自动生成的方法(getter/setter/add/remove/.etc)

我使用Type.GetMethods(BindingFlags.Instance|BindingFlags.Static|BindingFlags.Public|BindingFlags.NonPublic)检索给定类型的方法数组。问题是返回的MethodInfo可能包含编译器生成的方法,而我不想要这些方法。例如:propertyboolEnabled{get;将得到boolget_Enabled()事件SomethingChanged会得到add_SomethingChanged(事件处理程序)和remove_SomethingChanged(事件处理程序)我或许可以添加一些过滤逻辑

c# - Resharper 建议字符串文字是可本地化的

Resharper6.0的建议之一是本地化字符串,如果我不想对字符串进行本地化,我可以通过添加@将其转换为逐字字符串文字来抑制警告。.升级到Resharper6.1后,这不再有效。甚至逐字字符串文字也会显示警告。禁用本地化或抑制警告不是理想的选择。我确实使用了本地化,所以警告很有用,我不想让禁用注释到处都是。是否有让Resharper6.1忽略逐字字符串文字的选项? 最佳答案 在ReSharper/选项下,转到:CodeEditing->C#->Localization并勾选“不分析逐字字符串”