有没有办法将List方法的新方法添加到它所构成的对象上.换句话说,可以用这样的方式编写类,当List由它构成时,它会向该List添加新方法.这是一个例子:
class Employee
{
public int age;
public Employee(int age)
{
this.age = age;
}
//some more code here...
}
Run Code Online (Sandbox Code Playgroud)
然后:
List<Employee> sector01 = new List<Employee>(){new Employee(22), new Employee(35)};
sector01.OutputAll(); //Adds method like this
Run Code Online (Sandbox Code Playgroud)
您可以将其定义为扩展方法:
namespace SomeNamespace
{
public static class ListExtensions
{
public static void OutputAll(this IEnumerable<Employee> employees)
{
foreach (var employee in employees)
{
Console.WriteLine("{0}: {1}", employee.FirstName, employee.LastName);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后简单地将定义此静态类的命名空间放入范围:
using SomeNamespace;
Run Code Online (Sandbox Code Playgroud)
现在你将能够做到这一点:
List<Employee> sector01 = new List<Employee>()
{
new Employee(22),
new Employee(35)
};
sector01.OutputAll();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5734 次 |
| 最近记录: |