Articles of genéricos

Como filtrar uma coleção dentro de um método genérico

Eu tenho uma class de dois que está tendo propriedades seguintes Class A { public int CustID { get; set; } public bool isProcessed { get; set; } } Class B { public int EmpId{ get; set; } public bool isProcessed { get; set; } } Eu criei um método genérico que aceita todas essas […]

Verificando o valor padrão de uma estrutura

Há algo errado na minha function DefaultValue (). Ele sempre retorna false , representando que a estrutura NÃO é o valor padrão. Por que isso não funcionaria? [StructLayout(LayoutKind.Sequential)] private struct ArrayItem { public long SrcSize; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 250)] public string SrcFile; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 250)] public string DestFile; } [StructLayout(LayoutKind.Sequential)] private struct MyInfo { […]

Como posso retornar uma primitiva de um método com um tipo de retorno genérico?

No meu código eu tenho um genérico, “getProperty” assim: public T getProperty(int GUID, string property) { PropertyComponent prop; prop = propDict[GUID]; if(property.Equals(“visible”)) return (T) (Boolean) prop.visible; if(property.Equals(“enabled”)) return prop.enabled; if(property.Equals(“position”)) return (T) (Object) prop.position; } Compilador do Visual Studio não me dá nenhum erro para o terceiro termo, como prop.position é um Vector2. Prop.visible e […]

Não defina nenhum tipo para um método estático em uma class genérica

Não é um fã de Java, mas Java não permite definir tipos para classs genéricas e, nesse caso, ele ameaça o tipo como tipo de Object . No entanto, até onde eu sei, o C # impõe a configuração do tipo de sempre que a class genérica precisar ser instanciada ou simplesmente usada. No entanto, […]

Herança e covariância genérica C #

Estou construindo uma biblioteca de collections e gostaria que todas as interfaces genéricas de coleção exigissem tipos de classs e todas as collections que as implementassem fossem de qualquer tipo. Assim, nos tipos de valor, a coleção teria dois methods, um para o tipo de valor e outro para encaixá-lo. Isso é possível? Como isso: […]

Problemas com genéricos usando o Silverlight

Eu estou criando um aplicativo da web c # usando o Silverlight 5 (VS 2010). Eu criei inicialmente um aplicativo de console que funciona bem e agora estou adaptando-o em um aplicativo da web. Mesmo no aplicativo da web, ele está funcionando bem para um tipo de dados particularmente definido (por exemplo, para int vez […]

Elenco da interface genérica dinâmica

Eu quero descobrir e registrar dinamicamente implementações de interface. Por uma questão de argumento eu tenho dois methods semelhantes a estes: public void Register(IHandler handler) where TEvent : IEvent public void Register(Action action) where TEvent : IEvent { Register(handler.Handle); } E as interfaces são como as seguintes: public interface IHandler where T : IEvent { […]

Referência de base do ASP.NET BasePage para implementação concreta

Eu tenho uma página que é configurada assim public partial class _Default : ViewBasePage, IEmployeeView { … } Dentro da minha página de base public abstract class ViewBasePage : Page where TPresenter : Presenter where TView : IView { protected TPresenter _presenter; public TPresenter Presenter { set { _presenter = value; _presenter.View = GetView(); // […]

Matemática e genéricos

Ok, eu preciso implementar, entre outros, esses dois tipos específicos: ComplexNumber e Matrix . T pode ser um dos seguintes: um número racional , um número real ou inteiros. No namespace System eu tenho uma boa representação para números reais ( decimal ), números inteiros ( int ou long ). Numerics.ComplexNumber não o corta porque […]

Elenco propriedade genérica do tipo T até um tipo herdado conhecido

Estou recebendo o seguinte erro do compilador Não é possível converter o tipo ‘T’ em ‘ProjectReportingHandler’ para a linha var projectReport = (ProjectReportingHandler)result.Report; ao tentar compilar: public abstract class ReportingHandler { // Report stuff } public abstract class ProjectReportingHandler: ReportingHandler { // Report stuff // Project specific report stuff } public class ReportInstance where T […]