【发布时间】:2021-06-25 13:56:22
【问题描述】:
是否可以将方法添加到变量中,例如。
public static int BoolToInt(bool entry)
{
if(entry == true) { return 1; }
else { return 0; }
}
bool example = checkbox1.Checked;
RandomMethod(example.BoolToInt());
着眼于尽量减少视觉混乱并提高可读性(我发现RandomMethod(example.BoolToInt(), example2.BoolToInt()); 比RandomMethod(BoolToInt(example), BoolToInt(example2)); 更容易阅读)我想知道这是否可能,经过研究我发现了这个Can you assign a function to a variable in C#?,感觉这是正确的方向,但是当我想添加它时,它使变量成为方法。我是新手,所以我无法从那里去我想要的东西,也不知道是否有办法做到这一点,也找不到太多阅读 Microsoft Docs 的内容。
【问题讨论】:
-
您正在寻找extension methods。
-
请注意,如果您决定对原始类型使用扩展方法(这是一种可疑的做法),请确保将包含类设置为
internal。否则你可能会用他们没想到的扩展方法来打扰很多代码。 -
哦,太好了,谢谢,我需要注意任何性能问题,或者与定期调用方法基本相同?
-
扩展方法只是一个静态方法,其性能与普通静态方法完全相同。
-
如果我们想转换,为什么不转换:
Convert.ToInt32(example)?Convert很明显,当BoolToInt的目的不是那么清楚时