gpt4 book ai didi

c# - 为所有公共(public)方法添加默认行为

转载 作者:行者123 更新时间:2023-11-30 21:47:31 26 4
gpt4 key购买 nike

是否有可能在 C# 中实现一种机制,自动将默认行为添加到给定类(实现给定接口(interface)或具有给定属性......或其他)的每个公共(public)方法?

比如我有一个方法:

    public void DoSomething(MyClass a) {
if (a != null) {
// Do method body
}
else{
// Throw exception (a argument of type MyClass is null)
}
}

我希望为每个属性自动添加这个条件,而不需要每次都为给定的公共(public)方法编写它。

有什么(任何类型的机制)我可以用于类似的事情吗?

最佳答案

为避免反射,可以使用泛型方法:

public void DoSomething(MyClass a) => MakeSomeStaff(a, () => { /* Do method body */ });


private void MakeSomeStaff<T>(T item, Action action) where T: class
{
if (item == null)
throw new Exception();

action();
}

关于c# - 为所有公共(public)方法添加默认行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38326331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com