>  기사  >  백엔드 개발  >  C# 정적 메서드 및 비정적 메서드 예제 analyze_php 기술

C# 정적 메서드 및 비정적 메서드 예제 analyze_php 기술

WBOY
WBOY원래의
2016-05-16 20:35:58929검색

이 글에서는 예제를 통해 C# 정적 메서드와 비정적 메서드를 분석하고 이들의 사용법을 비교적 포괄적으로 분석합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.

일반적으로 C# 클래스에는 정적 메서드와 비정적 메서드라는 두 가지 메서드가 포함될 수 있습니다.

정적 수정자를 사용하는 메서드는 정적 메서드이고, 그렇지 않으면 비정적 메서드입니다.

정적 메서드는 클래스의 특정 인스턴스에 속하지 않고 클래스 자체에 속하는 특수 멤버 메서드입니다. 따라서 정적 메서드의 경우 먼저 클래스의 인스턴스를 생성할 필요가 없고 클래스 이름.정적 메서드 형식을 사용합니다.

1) 정적 메서드는 클래스의 멤버 메서드로, 클래스 전체에 속하며 객체를 생성하지 않고 직접 호출할 수 있습니다.
static 내부에는 정적 변수 및 기타 정적 메서드만 나타날 수 있으며, 이와 같은 키워드는 클래스 전체에 속하므로 정적 메서드에서 사용할 수 없습니다.

2) 정적 메서드는 인스턴스화보다 효율적입니다. 정적 메서드의 단점은 자동으로 소멸되지 않는 반면 인스턴스화된 메서드는 소멸될 수 있다는 것입니다.

3) 정적 메서드와 정적 변수는 생성 후 항상 동일한 메모리를 사용하는 반면, 인스턴스를 사용하면 여러 메모리가 생성됩니다.

4) 그렇다면 정적 필드와 정적 구성 방법은 프로그램에서 어디에 사용될 수 있습니까? 일반적으로 두 가지 사항을 언급할 때 연결 문자열, 구성 정보 등과 같이 자주 변경되지 않고 자주 사용되는 일부 데이터에 적합합니다. 위의 내용을 충족하면 향후 편리하게 사용할 수 있으며 정적 멤버의 경우 정적 필드는 하나의 저장 위치만 식별하므로 호스팅 리소스도 절약됩니다. 클래스의 인스턴스 수에 관계없이 정적 필드의 복사본은 항상 하나만 있습니다.

정적 멤버는 메모리에 존재하며 비정적 멤버는 메모리가 할당되기 전에 인스턴스화되어야 하므로 정적 멤버는 비정적 멤버에 액세스할 수 없습니다. 정적 멤버는 메모리에 존재하므로 비정적 멤버는 클래스의 정적 멤버에 직접 액세스할 수 있습니다. 공용 처리 함수에 정적 메서드를 사용하는 데에는 문제가 없습니다. 데이터 공유에 있어서는 정적 변수가 있는 함수를 더 많이 고려해야 하며 정적 변수를 사용할 때는 주의해야 합니다.

정적 방법:
코드 세그먼트 공유를 원칙으로 합니다.
스니펫을 공유해도 문제가 발생하지 않습니다.
런타임 코드 세그먼트를 악의적으로 "수정"하지 않는 한, 코드 세그먼트는 CPU에서 "읽기" 위해 사용되기 때문입니다.
따라서 정적 메서드를 안심하고 사용할 수 있습니다.

정적 변수:
데이터 세그먼트를 공유하는 것이 원칙입니다.
"쓰기" 작업이 없으면 문제가 없지만 데이터는 일반적으로 읽기 및 쓰기에 사용되므로 정적 변수는 주의해서 사용해야 합니다.

다음은 정적 메소드를 사용하는 간단한 예입니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
 class Program
 {
 static void Main(string[] args)
 {
  int i = MyClass.Add(7, 11); //调用静态方法
  Console.WriteLine(i);
  Console.ReadKey();
 }


 }
 class MyClass
 {

 public static int Add(int x, int y)
 {
  return x + y;
 }
 }
}


출력 결과: 18

이 기사가 모든 사람이 C# 프로그래밍을 배우는 데 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.