c# 오류 CS0120 : 객체 참조 필수
이 오류는 "비 종종 필드, 방법 또는 속성에 대한 객체 참조가 필요합니다 ..."는 정적 메소드 내에서 비 정적 멤버 ()에 액세스하려고 시도 할 때 발생합니다 (). 제공된 코드를 살펴 보겠습니다 :
setTextboxText
클래스 자체에 속합니다. 클래스의 어떤 객체가 생성되기 전에도 존재합니다. SumData
비 정적 멤버 : 는 클래스의 <code class="language-csharp">namespace WindowsApplication1
{
public partial class Form1 : Form
{
// ... other code ...
private static void SumData(object state)
{
// ... some code to calculate 'result' ...
setTextboxText(result); // Error occurs here
}
// ... other code ... including setTextboxText method ...
}
}</code> 인스턴스 에 속합니다. 액세스하려면 객체 (인스턴스)가 필요합니다
SumData가 Form1
의 메소드 내에서 호출되면 setTextboxText는
. 배경 스레드 또는 타이머에서
가 호출되면 :는 대의원을 사용하여 전화를 UI 스레드로 다시 마샬링하여 교차 스레드 예외를 피해야합니다.
<code class="language-csharp">namespace WindowsApplication1 { public partial class Form1 : Form { // ... other code ... private static void SumData(object state) { // ... some code to calculate 'result' ... setTextboxText(result); // Error occurs here } // ... other code ... including setTextboxText method ... } }</code>
SumData
인스턴스에 대한 참조를 전달하는 방법이 필요합니다. 여기에는 에 대한 인수로 전달하거나 정적 필드에 참조를 저장하는 것이 포함될 수 있습니다 (잠재적 합병증으로 인해 일반적으로 선호되지 않음). .
Form1
위 내용은 정적 메소드에서 비 정적 메소드를 호출하면 '객체 참조가 필요하다'는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!