Что вы можете сделать, это создать расширение класса. Невозможно добавить новые методы во время выполнения, но вы можете сделать что-то вроде этого:
public class OneClass
{
private List<object> items;
public List<object> Items { get { return items; } }
public void AddOne(object item)
{
items.Add(item);
}
}
если вы хотите расширить поведение этого класса, вы можете написать класс расширения. Как это:
public static class OneClassExtensions
{
public void AddMany(this OneClass self, params object[] items)
{
foreach(object item in items)
{
self.Items.Add(item);
}
}
}
Таким образом, вы можете вызвать этот метод расширения из ваших объектов OneClass:
OneClass obj = new OneClass();
obj.AddOne("hello");
obj.AddMany("Hello", "world"); // Extension method
Есть несколько правил, которым нужно следовать:
- Класс расширения должен иметь модификатор «static»
- вам нужно поставить префикс "this" перед первым аргументом. Этим аргументом будет сам объект.
- Чтобы использовать этот класс расширения в своем коде, вы должны использовать пространство имен, которое содержит этот класс расширения, например `using Some.Namespace.That.Has.An.Extension 'в каждом файле .cs, где вы хотите использовать методы расширения.