Tag: generics编程

具有generics返回类型但不是通用输入的方法。 这可能吗?

假设我们有一个NodeData类: public class NodeData { public string Name; public T Value; public NodeData(string name, T value) { this.Name = name; this.Value = value; } } 以及具有NodaData类型的多个属性的基类Node类和子类: public class Node { public List<NodeData> listOutputs() { var fieldInfos = GetType().GetFields(); var list = new List<NodeData>(); foreach (var item in fieldInfos) { Type t = item.FieldType; string name […]

为什么’Func ‘编译’Func ,其中TGeneric:IBase’没有?

为什么下面的集团错了? public interface IBase { } public class ClassX : IBase { } public class ClassY { public static ClassX FunctionReturnX() { return new ClassX(); } } public class ClassZ where TGeneric : IBase { Func funcInterface = ClassY.FunctionReturnX; //Right Func funcGeneric = ClassY.FunctionReturnX; //Wrong }

如何以通用方式写下面的逻辑?

我有一个如下的模型 public sealed class Person { public string MobileNo { get; set; } public string Firstname { get; set; } public string Lastname { get; set; } } 在我的implmentation类中,我有一个方法,它将IEnumerable作为参数 public string PersonList(string listName, IEnumerable persons) { dictionary.Add(“name”, new String[1] { listname }); dictionary.Add(“list”, persons.ToArray()); PrivateMethod(“personList”, dictionary); } 我有另一种私人方法 private string PrivateMethod(string value, Dictionary parameters) { […]

如何在C#中减去两个通用对象(T-T)(例如:DateTime – DateTime)?

我写了一个通用类 : public class Interval where T : IComparable // for checking that Start < End { public T Start { get; set; } public T End { get; set; } … } 我将这个类与DateTime,int等一起使用。 我需要一个Duration属性,返回一个持续时间,如: public object Duration { get { return End – Start; } } 但是当我的类中包含此属性时,编译器会在-运算符上引发逻辑错误 。 我能做些什么来正常实现这个目标,还是应该忽略它?