나는 클래스처럼이 : 내가 하나의 인스턴스 만이 필요하고 인스턴스를주지 않고 다른 모든 클래스에서 기능을 액세스 할 수 있기 때문에C# 클래스를 정적으로 만드시겠습니까?
class ContentManager : IDisposable
{
List<int> idlist = new List<int>();
public int Load(string path)
{
//Load file, give content, gets an id
//...
int id = LoadFile(myfilecontent);
idlist.Add(id);
return id;
}
public void Dispose()
{
//Delete the given content by id, stored in idlist
foreach(int id in idlist)
{
DeleteContent(id);
}
}
}
나는,이 정적 만들고 싶어.
나는 모든 변수를 정적으로 만들고 함수를 정적으로 만들 수 있습니다.
하지만 내 문제는 IDisposable입니다. 정적 클래스에서는 인터페이스를 사용할 수 없습니다. 결국 어떻게해야할까요? 나는 그 인터페이스를 제거 할 수 있지만 그 안에 함수를 남겨두고 내 메인 클래스를 사용하면 ContentManager.Dispose()를 호출 할 때 메인 클래스가 삭제됩니다. 하지만 내 메인에서 그걸 잊었을 때 ...
당신은 그것에 대한 좋은 해결책이 있습니까? 프로그램이 닫힐 때마다 Dispose가 호출되는지 확인하십시오.
편집 : 그래픽 카드에 데이터를로드하고 포인터를 다시 가져옵니다. 내 응용 프로그램이 닫히면 그래픽 카드에서 내용을 삭제해야합니다. 안전을 위해 모든 것이 삭제되고 처분됩니다.
http://stackoverflow.com/questions/12126598/how-and-when-are-c-sharp-static-members-disposed – Habib
싱글 톤을 찾는 것처럼 보입니다. http : //en.wikipedia. org/wiki/Singleton_pattern –