개인 메서드를 정적으로 선언 할 때 이점은 무엇이며 언제 사용합니까?C# 개인 메서드를 정적으로
이유는 무엇 사용해야
private static string GetSomething()
{
return "Something";
}
대신 :
private string GetSomething()
{
return "Something";
}
개인 메서드를 정적으로 선언 할 때 이점은 무엇이며 언제 사용합니까?C# 개인 메서드를 정적으로
이유는 무엇 사용해야
private static string GetSomething()
{
return "Something";
}
대신 :
private string GetSomething()
{
return "Something";
}
이 정적 메소드를 호출은 마이크로 소프트 중간에서 호출 명령어를 생성
를 무슨 말을 MSDN한다 언어 (MSIL)를 호출하는 반면 인스턴스 메서드 호출은 callvirt 명령을 생성합니다. null 객체 참조. 그러나 대부분의 경우이 둘의 성능 차이는 중요하지 않습니다.
더 간단한 단어는 성능 향상이 있음을 의미합니다.
이 메서드는 인스턴스 데이터를 사용하지 않는다고 다른 개발자에게 알리는 수단으로 private static 메서드를 선언 할 수 있습니다.
개인 정적이 중요성을 갖는 아래의 간단한 디자인을 고려하십시오.
당신은 일부 데이터 숨기기 (추상화)를 갖고 싶어하고, 클래스의 정적 및 비 정적 함수 모두에서 데이터를 사용하려면 :
public class test
{
private static int funcValue()
{
return 200;
}
public static void someStaticFunc()
{
int x = funcValue();
}
public void anotherNonStaticFunc()
{
int y = funcValue();
}
}
:이
예를 아래에 고려
전화 :
test t = new test();
test.someStaticFunc();//static
t.anotherNonStaticFunc();//non-static
위의 예에서를 선언하지 않으면정적 인 경우 은이 아니며 정적 함수 someStaticFunc
에서 호출하고 funcValue
을 비공개 (추상화)하려고합니다.
Google의 첫 번째 결과 : http://msdn.microsoft.com/en-us/library/98f28cdx.aspx 두 번째 결과 : http://msdn.microsoft.com/en-us/library/79b3xss3.aspx 세 번째 결과 : http://stackoverflow.com/questions/4124102/whats-a-static-method-in-c# – dtb
문맥을 제공하는 것은 어떻습니까? 두 예제 모두 유효하며 시나리오에 따라 다릅니다. – DGibbs
접근 자와 정적 수정자는 직교 개념이므로 'private'과 'static'사이에는 아무런 관련이 없습니다. –