Tag: 扩展名 方法

IronRuby在.NET 3.5中调用C#扩展方法 – 错误 – 兼容性

我已经编写了一个名为HideColumns的DataGridView扩展方法。 public static class Extensions { public static void HideColumns(this DataGridView dataGridView, params string[] columnNames) { foreach (string str in columnNames) { if (dataGridView.Columns[str] != null) { dataGridView.Columns[str].Visible = false; } } } } 我将网格作为名为main_grid的变量传递给IronRuby脚本 当我的脚本调用main_grid.HideColumns(“FirstName”,“LastName”)时,脚本会出现错误,脚本未定义方法’HideColumns’用于System.Windows.Forms.DataGridView:System :: Windows :: Forms :: DataGridView 扩展方法似乎可以从C#中正常工作。 是什么赋予了?

您在C#中制作或看到的哪些流畅的界面非常有价值? 他们真是太棒了?

如今,“流畅的界面”是一个相当热门的话题。 C#3.0有一些很好的function(特别是扩展方法)可以帮助你制作它们。 FYI,一个流畅的API意味着每个方法调用返回一些有用的东西,通常是你调用方法的同一个对象,所以你可以继续链接。 Martin Fowler在这里用Java示例讨论它。 这个概念就像这样: var myListOfPeople = new List(); var person = new Person(); person.SetFirstName(“Douglas”).SetLastName(“Adams”).SetAge(42).AddToList(myListOfPeople); 我在C#中看到了一些非常有用的流畅接口(一个例子是用于validation我在之前提出的早期StackOverflow问题中找到的参数的流畅方法。它让我感到震惊。它能够为表达参数validation规则提供高度可读的语法,并且另外,如果没有例外,它可以避免实例化任何对象!所以对于“正常情况”,开销非常小。这一小窍门在短时间内教会了我很多 。我想找到更多的东西像那样)。 所以,我想通过观察和讨论一些优秀的例子来了解更多。 那么, 你在C#中制作或看到的一些优秀的流畅界面,是什么让它们如此有价值? 谢谢。

字符串数据类型的C#扩展方法

我的网络应用程序处理需要大量转换为数字的字符串 – 用户经常在这些字段中添加逗号,单位(如cm,m,g,kg)和货币符号,所以我想要做的是创建一个字符串扩展方法清除字段并将其转换为小数。 例如: decimal myNumber = “15 cm”.ToDecimal();