C#,可以将扩展方法添加到C#中的用户定义类(不是基类)

时间:2010-12-09 12:04:27

标签: c# c#-3.0

我有一个用户定义的类

public class Student
{
    int rollno;
    public getrollno()
    {
        return rollno;
    }
}

我希望扩展方法checkifRollnoIs1()返回true或false。

我能做到吗?我怎么能这样做?

3 个答案:

答案 0 :(得分:5)

以下是编写一种方法的一种方法:

public static class StudentExtensions
{
  public static bool checkifRollnoIs1(this Student s)
  {
    return s.getrollno() == 1;
  }
}

顺便说一下 - 扩展方法实际上没有添加到类中,它们就是这样出现的(intellisense magic)。

答案 1 :(得分:0)

是的,您可以添加扩展方法。

public static class MyExtensions
{
    public static bool checkifRollnoIs1(this Student student)
    {
        return student.getrollno() == 1;
    }
}

Source

虽然如果您有权访问源代码,为什么还需要扩展方法?

答案 2 :(得分:0)

您可以为“any”对象添加扩展方法,该方法可以传递给静态方法进行某些操作。

对于编译器,扩展方法只不过是一个静态方法。

如果你有“CheckIfRollNoIs1”的扩展方法,那么就是你的电话,

studentObj.CheckIfRollNoIs1() 

转换为,

StudentExtensions.CheckIfRollNoIs1(studentObj)