간단한 질문이지만, 나는 가능하다고 생각하지 않지만 전에 놀랐다.유형을 언급하지 않고도 정적 함수를 호출 할 수있는 방법이 있습니까?
내가 수학 함수의 모든 종류의 도서관이, 아주 간단한 예를 들어 floorcap 걸릴 수 있습니다 : 다른 클래스에서 다른 방법으로
class MathLib {
public static double floorcap(double floor, double value, double cap) {
return Math.Min(Math.Max(floor, value), cap);
}
}
을, 난 그냥 입력하고 싶습니다
var mat_adjusted = floorcap(1, maturity, 5);
하지만이 클래스에서는 선언되지 않았기 때문에 작동하지 않습니다. 라이브러리에 있습니다. 나를 입력하게합니다.
var mat_adjusted = MathLib.floorcap(1, maturity, 5);
코드에 노이즈가 추가됩니다. 나는 그것을 단축 할 수 있었다.
using m = MyMathLibrary.MathLib;
.. yadayada
var mat_adjusted = m.floorcap(1, maturity, 5);
그러나 아직도, 나는 클래스 이름을 항상 타이프하지 않아도되는 것을 좋아한다. 그게 가능하니? 나도 F # 코드를 작성하고 잠시 후에 타입/모듈 등을 철자하지 않아도된다. C#을 써야 할 때,이 일은 나를 괴롭 히고 있습니다.
여기에 많은 기능이 있습니다.이 점과 클래스 이름이 모두 중첩 된 몇 가지 기능을 호출해야 할 때가 있습니다. 나는 가능한 한 깨끗한 코드를 좋아한다. 사전에
감사합니다,
거트-월
예, 동일한 클래스의 메소드를 사용하십시오. :) – ChaosPandion
점 표기법에 왜 그런 문제가 있는지 잘 모르겠습니다.'MathLib.FloorCap (1, 2, 3)'은 제게 매우 깨끗해 보입니다. –
actaully는 확장 메서드와 '로컬 래퍼'를 모두 고려했지만 예제에서는 해당 메서드를 사용하지 않았습니다. 래퍼는 많은 오버 헤드를 추가합니다. 확장 메소드는 코드도 복잡하게 만듭니다. 요점은 프로그래머가 아닌 프로그래머가 작성한 코드가 가능한 한 많이 보일 것입니다. – gjvdkamp