여기에 뭔가가 빠졌는지 모르겠지만 다음 코드는 항상 List.Contains 부분에 예외가 발생한다는 것을 이상하게 생각하지는 않습니다. 목록에 해당 요소가 포함되어 있음을 알고 있습니다. Contains
방법의 documentation에서List.Contains 이상한 동작
using System;
using System.Linq;
using System.Collections.Generic;
class SomeClass
{
public string param1 {get; private set;}
public string param2 {get; private set;}
private SomeClass(){}
public SomeClass(string param1, string param2)
{
this.param1 = param1;
this.param2 = param2;
}
}
class SomeClass2
{
private List<SomeClass> myList = new List<SomeClass>();
public void Add(SomeClass someclass)
{
myList.Add(someclass);
}
public void Remove(SomeClass someClass)
{
// this part always rises an exception
if(!myList.Contains(someClass))
throw new System.ArgumentException("some error");
else myList.Remove(someClass);
}
}
class MainClass
{
public static void Main (string[] args)
{
var _someClass = new SomeClass2();
_someClass.Add(new SomeClass("aaa", "bbb"));
try
{
_someClass.Remove(new SomeClass("aaa", "bbb"));
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
}
}
여기 뭔가 문제가 있습니다. 아직이 컴퓨터에 컴파일러가 설치되어 있지 않지만 예제를 컴파일하는 방법을 모르므로 설치하려고합니다. –
소음 때문에 미안하지만 컴파일러가없는 클래스 생성자와 클래스 정의의 차이점을 알 수는 없습니다 ... –