首页 > TAG信息列表 > extension-methods
CodeGo.net>扩展解决方案,以简单地绑定到’Text属性到多个控件以处理绑定到任何类型?
我的问题是:如何超越编写用于对各种控件(没有内置DataSource属性的控件)进行数据绑定的技术的自定义实现,将每种可能的数据类型绑定到简单的属性……如下面的代码中所描述和演示的…以获得更强大的解决方案,而该解决方案将与绑定是绑定到字符串,int还是其他类型无关. 我的猜测是:这将在生成的迭代器块中获取对“ this”的引用的任何方法?
从C#2.0开始,我们已经能够在类内部声明迭代器块,并使用yield return关键字从中返回值.在后台,编译器已将我们相当简单的迭代器块慷慨地转换为自己的类,即状态机,该机完全实现IEnumerable或IEnumerator接口.使用ILSpy或Reflector,您可以了解这些类的外观. 在C#3.5中,将扩展方法添加c#-修改枚举值的扩展方法
我是扩展的新手.在发布此答案之前,我一直在寻找一个已有的答案,因为我不想写,但我发现没有发现任何有用的答案. 我想要一个带有Flag属性的枚举的扩展方法,我可以调用该扩展方法来将另一个枚举/标志基本上附加到调用枚举. 在有人将其投票减为Int32.MinValue之前,我确实看了不少,但是转换类的可扩展性(扩展方法与父类)
我正在为频率创建一个转换类,我希望允许我的团队能够在需要时添加其他转换. Frequency myFrequency = new Frequency(100, MHz); double value = myFrequency.InKhz(); 该类的源代码不会包含在以后的项目中,因此我要么不得不将该类作为部分类,要么其他转换将需要进行扩展.例如,将c#-为类型T编写扩展方法;如何为T字段添加类型约束?
初始情况: 我正在使用专有框架(ESRI的ArcGIS Engine),我想使用一些新功能对其进行扩展.为此,我选择在C#中使用扩展方法. 下面显示的是框架API与该问题相关的部分: +------------------------+ IGeometry | IFeature <interface> | <ic#-通过Controller / Action / RouteValues组合显示MVC URL路径
我有以下疑问: 当我使用以下代码时: @(Html.ActionLink("Click Me", "ACTION", new {QueryName = ViewBag.QueryName})) 我将得到这样的HTML输出: < a href =“ http:// localhost / ControllerName / ACTION?QueryName = 098”>点击我< / a> 好的,但是如果我想将以下内容作为HTML输出在C#中允许覆盖扩展会出现什么问题
根据语言规范http://msdn.microsoft.com/en-us/library/bb383977.aspx You can use extension methods to extend a class or interface, but not to override them. An extension method with the same name and signature as an interface or class method will never bec#-如果具有方法/扩展方法,则调用它
我正在为字典制作ToDebugString()方法,但是如果该类型可用,我还希望它对任何项目使用ToDebugString()方法. 由于ToDebugString()有时被实现为本机.NET类型(例如字典和列表)的扩展方法,因此我在检查该方法是否存在时遇到了麻烦.我只将扩展方法放在一个称为ExtensionMethods的类中,因CodeGo.net>我如何在扩展方法中获得’this’参数的泛型类型参数?
我正在尝试将以下方法转换为IEnumerable的扩展方法: private static IEnumerable<TTarget> MapList<TSource, TTarget>(IEnumerable<TSource> source) { return source.Select( element => _mapper.Map<TSource, TTarget>(element)计数和ToList扩展方法的枚举?
是否可以为Enum实例创建Count和ToList扩展方法? 我已经尝试过了,但是不知道如何替换与枚举类型“ e”有关的“ ???”. public static class EnumExtensions { public static int Count(this Enum e) { return Enum.GetNames(typeof(???)).Length; }c#-创建扩展方法以将类型包装为IEnumerables
我想创建一个扩展方法,该方法可以有效地将单个对象包装为IEnumerables.这是为了避免最终在表达式中间放置新的[] {}的情况.使用以下方法很容易做到: public static IEnumerable<TSource> WrapAsEnumerable<TSource>(this TSource source) { return new[] { source }; } 问题在使用派生类型作为Java中的参数重载方法
假设我已经扩展了现有代码,但也避免尽可能地更改代码. 在这个代码的某处,有一个接收某种类型的方法. Engine.method(Base b) 现在,我想扩展此功能.所以我将Base扩展为一个名为Derived的类型,它包含了我需要的更多数据,并且我还实现了另一个接收Derived类型并使用它做一些不同的c# – 在运行时修改linq查询
问题陈述 假设我有一个搜索人名的查询: var result = (from person in container.people select person) .Where(p => p.Name.Contains(some_criterion) 这将被转换为包含以下like子句的SQL查询: WHERE NAME LIKE '%some_criterion%' 这有一些性能影响,因为数据库无c#订购List>
如何订购List< Dictionary< String,object>>该对象仅包含字符串 字典的结构如下 [name: mario] [surname: rossi] [address: xxxxxx] [age: 40] 我想按“年龄”订购这些词典的清单 你可以帮我吗? 我尝试过: myList.Select(x => x.OrderBy(y=>y.Value)) 它给了我这个错误:值不是一C#找不到char结构的扩展方法
基本上,我写了这个扩展方法: public static class Extensions { public static bool IsMaths(this Char it) { if (char.IsDigit(it) || char.IsControl(it)) { return true; } foreach (char each in new char[] { '-', '+', '('c# – 我可以在现有的.NET结构中添加枚举,比如Date吗?
显然,微软的日期结构没有月份枚举. 我想知道的是,是否可以创建枚举并将其附加到DateTime结构?扩展方法立即浮现在脑海中,但我不知道如何使用它们来解决这个问题. Dim july As DateTime.Months = DateTime.Months.July Public Enum Months January = 1 February = 2 Mac# – 日志记录的扩展方法.一个好主意?
在您看来,以下扩展方法的优缺点是什么? static class Log { public static string AddToLog(this string input) { Console.WriteLine(input); return input; } public static string AddToLog(this string input, string format) {在C#中将我自己的非法字符插入Path.GetInvalidFileNameChars()
如何扩展Path.GetInvalidFileNameChars以包含我自己的应用程序中非法的字符集? string invalid = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars()); 如果我想添加’&’作为一个非法角色,我可以这样做吗?解决方法:您无法修改现有函数,但可以c# – 我可以覆盖公共API中的类的ToString()吗?
我正在编写一个与另一个软件的API接口的工具.我的部分工具需要生成有关通过API找到的各种对象的报告,我希望这些报告包含标识每个对象的简单字符串.默认情况下,我计划使用ToString()为每个对象生成字符串.但是,毫不奇怪,我发现此API中的默认ToString()实现不具有描述性. 最初我想用c# – 无法将InputEventArgs转换为MouseEventArgs
我正在尝试制作这种扩展方法.在演员说“无法将类型T转换为MouseEventArgs”时出错.我不应该能够向上转换对象(因为MouseEventArgs:InputEventArgs)? 如果你很好奇,我使用它来共享Mouse和Touch事件之间的事件处理程序,只需使用处理程序方法中的基本InputEventArgs. public staticc# – 使用三元语句将扩展方法分配给委托
假设 假设我们有一个接口,并为所述接口定义了以下扩展方法(它们的实现并不重要) public interface IPerson; public class IPersonExtensionMethods { public static bool SayHello(this IPerson talker, IPerson listener); public static bool SayGoodbye(this IPersonc# – 由运算符对Lambda表达式进行分组,并将它们与DapperExtensions的PredicateGroups一起使用
根据我之前的问题:Pulling Apart Expression<Func<T, object>> – 我试图让它更先进一点.目前,我可以这样做: var matchingPeople = Connection.Get<Person>(p => p.MarketId == marketId); 将转换为DapperExtensions FieldPredicate: // Assume I've successfully parsed p =&VB 2008程序集中的扩展方法不能用于C#项目?
我在VB程序集中编写了一些字符串扩展方法,并从C#项目中对它们进行单元测试.但是,C#表示它看不到扩展方法,当其他VB项目引用VB程序集时它们没有问题. VB可装配和C#测试项目都针对.Net 3.5. 有没有解决的办法? VB.Net扩展方法: Imports System.Runtime.CompilerServices Imports Systec# – 如何将void返回扩展方法传递给动态返回扩展方法?
我想传递一个扩展方法,该方法将void作为参数返回给另一个返回dynamic的扩展方法. public static void AddTo(this Object entity, Object parent) { parent.GetCollectionOf(entity).Add(entity); } public static dynamic And(this Object entity, Action method) { entic# – 找不到扩展方法(不是程序集引用问题)
我有以下扩展方法: public static EntitySet<T> ToEntitySetFromInterface<T, U>(this IList<U> source) where T : class, U { var es = new EntitySet<T>(); IEnumerator<U> ie = source.GetEnumerator(); while (ie.MoveNext())