>백엔드 개발 >C++ >C# CS0120 오류를 해결하는 방법 : '비 종종 필드, 방법 또는 속성에 대한 객체 참조가 필요합니다'?

C# CS0120 오류를 해결하는 방법 : '비 종종 필드, 방법 또는 속성에 대한 객체 참조가 필요합니다'?

Linda Hamilton
Linda Hamilton원래의
2025-02-02 17:56:09440검색

How to Resolve the C# CS0120 Error: C# CS0120 오류 : "비 정적 필드, 메소드 또는 속성 'foo'에 대한 객체 참조가 필요합니다. 이 오류는 정적 메소드 또는 정적 속성과 같은 정적 컨텍스트 내에서 비 ​​정적 멤버 (필드, 메소드 또는 속성)에 액세스하려고 할 때 발생합니다. 시나리오 :

<:>이 코드를 상상해보십시오 :

솔루션 : 몇 가지 접근법이 이것을 해결할 수 있습니다 :

멤버 정적을 정적으로 만드십시오. 이것은 멤버가 인스턴스 별 데이터에 의존하지 않는 경우에만 작동합니다.

싱글 톤 패턴 :
<code class="language-csharp">public partial class MyForm : Form
{
    private void MyMethod(object sender, EventArgs e)
    {
        // Error: Accessing a non-static member from a static method
        UpdateLabel(someValue); 
    }

    private void UpdateLabel(string text)
    {
        myLabel.Text = text; // myLabel is a non-static member (control)
    }
}</code>
싱턴을 사용하여 클래스의 인스턴스에 액세스하십시오. 이것은 클래스의 한 인스턴스 만 필요할 때 적합합니다.

클래스를 인스턴스화 :

정적 메소드 내에서 클래스의 인스턴스를 만듭니다.

  1. 호출 방법을 비 정적으로 만들기 :

    가장 간단한 솔루션은 종종 비 정적 멤버를 비 정적으로 호출하는 방법을 만드는 것입니다. static

    추가 읽기 :
    <code class="language-csharp">public static void UpdateLabel(string text) // Now static
    {
        // Access static members only here!  You can't access myLabel directly.
    }</code>
  2. 자세한 정보는 CS0120 오류에 대한 Microsoft의 문서를 참조하십시오. 각 솔루션의 의미를주의 깊게 고려하십시오. 올바른 접근 방식을 선택하는 것은 응용 프로그램의 디자인과 코드의 특정 컨텍스트에 따라 다릅니다.

위 내용은 C# CS0120 오류를 해결하는 방법 : '비 종종 필드, 방법 또는 속성에 대한 객체 참조가 필요합니다'?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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