简单的问题,我认为这不可能,但之前一直感到惊讶.
我有一个包含各种数学函数的库,让我们举一个非常简单的示例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#时,这件事让我感到恼火(一点点),因为它会分散注意力的东西.
这里有很多功能,当你需要调用一些嵌套的函数时,所有这些点和类名都会加起来.我喜欢我的代码尽可能干净.
提前致谢,
格特 - 扬
不,这是不可能的 - 它必须在其所在的范围内具有资格(显然,如果事物属于当前环境的范围,那么你可以,但是错过了问题和目标的重点.)
这是因为没有什么比任何类型都更直接地生活 - 所以可以说没有"全球呼唤"的感觉.