使用c#泛型扩展方法对类而非集合进行操作

罗密尔·埃文斯
I have the following types defined:
-----------------------------------

interface IMyInterface<T> where T : class
{
   void BlahBlah();
}
abstract class MyBase<T> : IMyInterface<T> where T : class
{
   public abstract T MyInfo { get; set; }
   public abstract T MyInfo2 { get; set; }
   public void BlahBlah()
   {
       Console.WriteLine(MyInfo + ", " + MyInfo2);
   }
}
class MyConcreteClass1<T> : MyBase<T> where T : class
{
   public override T MyInfo { get; set; }
   public override T MyInfo2 { get; set; }
}
class MyConcreteClass2<T> : MyBase<T> where T : class
{
   public override T MyInfo { get; set; }
   public override T MyInfo2 { get; set; }
}


public static class DataOperations<T, U> where T : class where U : class
{
        public static U Operate(this T source, U destination)
        {
            var sourceProps = source.GetType().GetProperties();
            var destinationProps = destination.GetType().GetProperties();

                .
                .
                .
            return destination;
        }
}

我想要做的是在实现中对上述两个类进行操作:

MyConcreteClass1<String> class1 = new MyConcreteClass1<String>();
class1.MyInfo = "Some Value";
class1.MyInfo2 = "another value";
MyConcreteClass2<String> class2 = new MyConcreteClass2<String>();
var c2 = class1.Operate(class2);

问题是我得到:DataOperations类名上的“必须在非通用静态类中定义CS1106扩展方法”。

马克·格雷韦尔

声明类型必须是非泛型的,但是方法可以是泛型的。请考虑:

public static class DataOperations
{
        public static U Operate<T, U>(this T source, U destination)
             where T : class where U : class
        { // ...
        }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#在方法调用中扩展泛型类

来自分类Dev

C#在方法调用中扩展泛型类

来自分类Dev

扩展集合泛型类的泛型类

来自分类Dev

C#中的多类泛型集合

来自分类Dev

C#中的多类泛型集合

来自分类Dev

c#使用泛型方法

来自分类Dev

C#创建包含泛型集合的泛型方法并调用Sum()

来自分类Dev

一个泛型类使用expression <T,bool>方法创建泛型扩展

来自分类Dev

C#泛型类作为参数,与泛型类的调用方法具有相同的T

来自分类Dev

C#泛型类作为参数,与泛型类的调用方法具有相同的T

来自分类Dev

C#集合类型约束泛型

来自分类Dev

如何在C#中的泛型类中使用泛型类的对象?

来自分类Dev

使用泛型和扩展Abstract类

来自分类Dev

Java:使用泛型扩展类

来自分类Dev

使用泛型C#使用where子句进行选择

来自分类Dev

在C#中创建泛型类的字典的辅助方法

来自分类Dev

使用C#中的泛型进行转换

来自分类Dev

c#中具有泛型类的泛型方法

来自分类Dev

在C#中的基类中使用泛型:如何确保基类中的方法返回派生类的类型?

来自分类Dev

使用泛型在类之间进行转换

来自分类Dev

扩展泛型类的类的错误覆盖方法

来自分类Dev

泛型与扩展方法

来自分类Dev

泛型类的字段约束 - C#

来自分类Dev

从泛型类派生的c#问题

来自分类Dev

C ++:泛型类中的非泛型方法?

来自分类Dev

在泛型派生的类的集合中使用泛型基类

来自分类Dev

在泛型派生的类的集合中使用泛型基类

来自分类Dev

Java泛型-使用泛型函数扩展泛型类

来自分类Dev

如何为泛型类方法获取正确的扩展方法?