有没有办法调用静态函数而不必提及类型?

gjv*_*amp 4 c#

简单的问题,我认为这不可能,但之前一直感到惊讶.

我有一个包含各种数学函数的库,让我们举一个非常简单的示例floorcap:

class MathLib {
    public static double floorcap(double floor, double value, double cap) {
        return Math.Min(Math.Max(floor, value), cap);
    }
}
Run Code Online (Sandbox Code Playgroud)

在另一个类的另一个方法中,我只想输入

var mat_adjusted = floorcap(1, maturity, 5);
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为它没有在这个类中声明,它在库中.它让我打字

var mat_adjusted = MathLib.floorcap(1, maturity, 5);
Run Code Online (Sandbox Code Playgroud)

这会给代码增加噪音.我可以缩短它

using m = MyMathLibrary.MathLib;

.. yadayada

var mat_adjusted = m.floorcap(1, maturity, 5);
Run Code Online (Sandbox Code Playgroud)

但是,我仍然不想一直输入类名.那可能吗?我也用F#编写代码,你有点习惯在一段时间后不必拼出类型/模块等.当我不得不写C#时,这件事让我感到恼火(一点点),因为它会分散注意力的东西.

这里有很多功能,当你需要调用一些嵌套的函数时,所有这些点和类名都会加起来.我喜欢我的代码尽可能干净.

提前致谢,

格特 - 扬

Gra*_*mas 5

不,这是不可能的 - 它必须在其所在的范围具有资格(显然,如果事物属于当前环境的范围,那么你可以,但是错过了问题和目标的重点.)

这是因为没有什么比任何类型都更直接地生活 - 所以可以说没有"全球呼唤"的感觉.

  • 事实上,downvote很奇怪,但是. (2认同)