컴파일러 경고(수준 1) CS0197
'argument'는 참조로 마샬링하는 클래스의 필드이므로 ref 또는 out으로 전달하거나 해당 주소를 가져오면 런타임 예외가 발생할 수 있습니다.
MarshalByRefObject 에서 직접 또는 간접적으로 파생되는 클래스는 참조로 마샬링하는 클래스입니다. 이러한 클래스는 프로세스 및 컴퓨터 경계에서 참조로 마샬링할 수 있습니다. 따라서 이 클래스의 인스턴스는 원격 개체에 대한 프록시일 수 있습니다. 프록시 개체의 필드를 ref 또는 out으로 전달할 수 없습니다. 따라서 인스턴스가 프록시 개체가 될 수 없는 ref
this out
가 아닌 경우 이러한 클래스의 필드를 또는으로 전달할 수 없습니다.
다음 샘플에서는 CS0197을 생성합니다.
C#
// CS0197.cs
// compile with: /W:1
class X : System.MarshalByRefObject
{
public int i;
}
class M
{
public int i;
static void AddSeventeen(ref int i)
{
i += 17;
}
static void Main()
{
X x = new X();
x.i = 12;
AddSeventeen(ref x.i); // CS0197
// OK
M m = new M();
m.i = 12;
AddSeventeen(ref m.i);
}
}
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET 피드백
.NET은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.