2010-06-18 5 views
1

타임 스탬프 함수가 있고 타임 스탬프와 Console.WriteLine()을 결합하는 새로운 함수를 만들고 싶다고합시다.오버로드 된 함수에 래퍼 추가

public static void Write(string msg) 
    { 
     WriteTimeStamp(); 
     Console.WriteLine(msg); 
    } 

그러나 WriteLine() 메소드 래퍼 함수의 특성에 반영되지 않을 것이다 (18) 정도의 오버로드를 갖는다. 랩퍼가 비 문자열을 받아서 WriteLine()에 전달하는 방법은 무엇입니까?

답변

2

4.0 동적 변수를 사용할 수 있습니다 참조하는 방법 매개 변수로 PARAMS 키워드 (this blog post 참조)

public static void Write(object msg) 
{ 
    WriteTimeStamp(); 
    dynamic dynMsg = msg; 
    Console.WriteLine(dynMsg); 
} 
+0

을이 또한 나를 수 있기 때문에 기본 매개 변수를 사용하여이 솔루션을 정말 좋아합니다. – Cev

5

당신은 params 키워드를 할 수 있습니다, 또는 대안 나는 귀하의 질문에 오해가 될 수 있습니다

public static void Write(string msg, params object[] args) 
{ 
    WriteTimeStamp(); 
    Console.WriteLine(msg, args); 
} 

이 어떤 유형의 0 이상의 추가 인수를 지정할 수 있습니다, 그리고 Console.WriteLine(string, params object[]) 과부하가 호출됩니다있는 꽤 모든 다른 것들을 다룬다.