> 백엔드 개발 > C++ > 정적 메소드가 C#에서 비 정적 멤버에 액세스 할 수없는 이유는 무엇입니까?

정적 메소드가 C#에서 비 정적 멤버에 액세스 할 수없는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2025-02-02 17:46:09
원래의
246명이 탐색했습니다.
c# 정적 메소드는 비 스틱 멤버의 오류와 솔루션에 액세스 할 수 없습니다

오류 : 객체가 참조됩니다

다음 코드 조각은이 문제를 보여줍니다 Why Can't a Static Method Access Non-Static Members in C#?
문제의 원인

오류 정보는 정적 메소드 가 비 종교적 멤버 를 호출하도록 시도 함을 보여줍니다. 정적 메소드는 정적 멤버 만 액세스 할 수 있으며, 비 스틱 멤버는 속한 객체에 대한 참조가 필요합니다. 솔루션

이 오류를 해결하는 방법에는 여러 가지가 있습니다.

<code class="language-csharp">namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        ...

        private static void SumData(object state)
        {
            ...
            setTextboxText(result); // 错误:非静态字段、方法或属性
        }
    }
}</code>
로그인 후 복사
메소드를 정적으로 설정하십시오 :

그러나 메소드가 인스턴스 변수에 액세스 해야하는 경우 정적으로 설정할 수 없습니다.

전화 SumData : setTextboxText

생성자에서 를 현재 인스턴스로 설정하십시오.

호출 메소드에서

인스턴스를 만듭니다.
  1. 인스턴스가 이미 존재하면이 방법이 적용되지 않을 수 있습니다. setTextboxText 호출 메소드 는 비 제한 인스턴스 메소드로 설정됩니다 (에 속함) :
이것은 일반적으로 코드의 캡슐화 및 유지 보수를 유지하기 때문에 가장 좋은 솔루션입니다.
<code class="language-csharp">public static void setTextboxText(int result)</code>
로그인 후 복사
자세한 내용은 MSDN 문서를 참조하십시오.

위 내용은 정적 메소드가 C#에서 비 정적 멤버에 액세스 할 수없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿