Articles of extension methods

Posso “multiplicar” uma string (em c #)?

Suponha que eu tenha uma string, por exemplo string snip = “”; Eu quero basicamente escrevê-lo várias vezes, dependendo de algum valor inteiro. string snip = “”; int multiplier = 2; // TODO: magic code to do this // snip * multiplier = “”; EDIT: Eu sei que eu posso facilmente escrever minha própria function […]

Métodos de extensão estática

Duplicar Possível: Posso adicionar methods de extensão a uma class estática existente? Existe alguma maneira eu posso adicionar um método de extensão estática a uma class. especificamente eu quero sobrecarregar Boolean.Parse para permitir um argumento int.

Tipos anônimos – há alguma característica distingushing?

Existe alguma coisa para usar, para determinar se um tipo é realmente um tipo anônimo? Por exemplo, uma interface, etc? O objective é criar algo como o seguinte … //defined like… public static T Get(this IAnonymous obj, string prop) { return (T)obj.GetType().GetProperty(prop).GetValue(obj, null); } //… //And then used like… var something = new { name […]

Converter string em tipo anulável (int, double, etc…)

Eu estou tentando fazer alguma conversão de dados. Infelizmente, grande parte dos dados está em strings, onde deve ser int ou double, etc … Então o que eu tenho é algo como: double? amount = Convert.ToDouble(strAmount); O problema com esta abordagem é se o strAmount estiver vazio, se estiver vazio, eu quero que ele seja […]

Como funcionam os methods de extensão?

Eu quero fazer um método de extensão no Unity3d para a class Vector3. Mas eu não pareço entender isso. Isso é o que eu tenho: public static class ExtensionMethods{ public static Vector3 MaxValue(this Vector3 _vec3) { return new Vector3(float.MaxValue,float.MaxValue,float.MaxValue); } } Agora eu quero fazer um Vector3.MaxValue apenas como float.MaxValue com esta linha de código: […]

Java equivalente aos methods de extensão C #

Eu estou olhando para implementar uma funcionalidade em uma lista de objects como eu faria em c # usando um método de extensão. Algo assim: List list; // … List initialization. list.getData(id); Como faço isso em Java?

Nenhuma inferência de tipo com o método de extensão genérica

Eu tenho o seguinte método: public static TEventInvocatorParameters Until (this TEventInvocatorParameters p, Func breakCond) where TEventInvocatorParameters : EventInvocatorParameters where TEventArgs : EventArgs { p.BreakCondition = breakCond; return p; } E essa class public class EventInvocatorParameters where T : EventArgs { public Func BreakCondition { get; set; } // Other properties used below omitted for brevity. […]

Quais vantagens dos methods de extensão você encontrou?

Um “não crente” do C # estava me perguntando qual era o propósito dos methods de extensão. Eu expliquei que você poderia adicionar novos methods a objects que já estavam definidos, especialmente quando você não possui / controla a fonte para o object original. Ele trouxe “Por que não apenas adicionar um método à sua […]

Sobrecarga do operador com methods de extensão C #

Eu estou tentando usar methods de extensão para adicionar uma sobrecarga de operadora para a class C # StringBuilder . Especificamente, dado o StringBuilder sb , eu gostaria que sb += “text” se tornasse equivalente a sb.Append(“text”) . Aqui está a syntax para criar um método de extensão para StringBuilder : public static class sbExtensions […]

Por que a palavra-chave ‘this’ é necessária para chamar um método de extensão de dentro da class estendida

Eu criei um método de extensão para um ASP.NET MVC ViewPage, por exemplo: public static class ViewExtensions { public static string Method(this ViewPage page) where T : class { return “something”; } } Ao chamar esse método de uma View (derivada de ViewPage ), recebo o erro ” CS0103: O nome ‘Method’ não existe no […]