C\#의 정적 구성원,정적 방법,정적 클래스 소개
1.1 정의 및 설명
데이터 멤버:
정적 구성원:정적 구성원 변 수 는 클래스 와 연 결 된 것 으로 클래스 의'공'변수(공 통 된 표현)로 사용 할 수 있 습 니 다.그 는 특정한 대상 의 존재 에 의존 하지 않 고 방문 할 때 클래스 이름 에 변 수 를 추가 하여 접근 할 수 있 습 니 다.
인 스 턴 스 구성원:인 스 턴 스 구성원 변 수 는 대상 과 관련 되 고 인 스 턴 스 구성원 변 수 는 인 스 턴 스 의 존재 에 의존 합 니 다.
함수 멤버:
정적 방법:정적 방법 은 특정한 대상 에 속 하지 않 는 방법 으로 정적 방법 은 정적 구성원 변수 와 정적 방법 에 접근 할 수 있다.정적 방법 은 인 스 턴 스 변수 와 인 스 턴 스 방법 에 직접 접근 할 수 없고 간접 적 으로 호출 할 수 있 습 니 다.먼저 하나의 인 스 턴 스 를 만 든 다음 에 이 특정한 대상 을 통 해 정적 방법 을 호출 해 야 합 니 다.
인 스 턴 스 방법:인 스 턴 스 방법의 실행 은 특정 대상 과 관련 되 고 그의 실행 은 대상 이 존재 해 야 합 니 다.인 스 턴 스 방법 은 정적 변수 와 인 스 턴 스 변 수 를 직접 방문 할 수 있 습 니 다.여러 인 스 턴 스 대상 이 존재 할 때 메모리 에 특정한 인 스 턴 스 방법 으로 복사 하 는 것 이 아니 라 같은 유형의 모든 대상 이 모든 인 스 턴 스 방법의 복사(인 스 턴 스 방법 은'한 세트'공간 만 차지 합 니 다)를 공유 합 니 다.
정적 방법 과 인 스 턴 스 방법의 접근 권한 표
정적 구성원 변수
정적 방법
인 스 턴 스 구성원 변수
실례 방법
정적 방법
직접 방문
직접 방문
직접 접근 불가
직접 접근 불가
실례 방법
직접 방문
직접 방문
직접 방문
직접 방문
한 마디 로 하면 인 스 턴 스 방법의 존 재 는 대상 인 스 턴 스 가 있어 야 합 니 다.대상 인 스 턴 스 가 존재 하지 않 으 면 인 스 턴 스 방법 도 주인 을 호출 하지 않 습 니 다.정적 방법의 존재 전 제 는 클래스 의 존재 이기 때문에 성명 과 New 대상 이 필요 없습니다.
1.2 코드 데모
class Program
{
static void Main(string[] args)
{
Class1.CallObjectFunc();//
Console.WriteLine(Environment.NewLine);
Class1 tmpClass = new Class1();//
tmpClass.ObjectFunc();
Console.ReadKey();
}
}
class Class1
{
static int Class_m = 9;//
private int object_m = 8;//
public static void CallObjectFunc()
{
Console.WriteLine("------------ :");
Class1 class1 = new Class1();
class1.ObjectFunc();
Console.WriteLine("object_m:" + class1.object_m.ToString());
Console.WriteLine("------------ :");
}
public void ObjectFunc()
{
Console.WriteLine(" :");
Console.WriteLine("Class_m:" + Class_m.ToString());
Console.WriteLine(" :");
}
}
출력 결과:2.정적 클래스
클래스 는 정적 구성원 만 포함 하도록 static 로 설명 할 수 있 습 니 다.new 키 워드 를 사용 하여 정적 클래스 의 인 스 턴 스 를 만 들 수 없습니다.예 를 들 어 인 스 턴 스 데 이 터 를 조작 하지 않 고 코드 의 특정 대상 과 연결 되 지 않 는 방법 을 만 드 는 것 은 흔 한 요구 이다.그 방법 을 포함 하기 위해 서 정적 클래스 를 사용 해 야 합 니 다.
정적 클래스 의 주요 기능 은 다음 과 같 습 니 다.
그것들 은 정적 구성원 만 포함한다.함수 구성원 과 변 수 는 모두 static 수식 이 있어 야 합 니 다.
그것들 은 실례 화 되 어 서 는 안 된다.
그것들 은 밀봉 한 것 이다.컴 파일 러 컴 파일 시 자동 으로 sealed 태그 생 성
그것들 은 실례 구조 함 수 를 포함 할 수 없다.
따라서 정적 클래스 를 만 드 는 것 은 정적 구성원 과 개인 구조 함수 만 포함 하 는 클래스 를 만 드 는 것 과 대체적으로 같 습 니 다.개인 구조 함수 가 클래스 가 예화 되 는 것 을 막 습 니 다.
정적 클래스 를 사용 하 는 장점 은 컴 파일 러 가 우연히 인 스 턴 스 구성원 을 추가 하지 않도록 검 사 를 수행 할 수 있다 는 것 이다.컴 파 일 러 는 이러한 실 리 를 만 들 지 않 을 것 을 보증 할 것 이다.
정적 류 는 밀봉 되 어 있 기 때문에 계승 할 수 없다.정적 클래스 는 구조 함 수 를 포함 할 수 없 지만 정적 구조 함 수 를 설명 하여 초기 값 을 분배 하거나 정적 상 태 를 설정 할 수 있 습 니 다.
정적 클래스:
static class CompanyInfo
{
public static string GetCompanyName() { return "CompanyName"; }
public static string GetCompanyAddress() { return "CompanyAddress"; }
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.