원하는 개체 외부에서 암시 적 및 명시 적 연산자를 만들 수 없습니다.
당신이 대신 할 수있는 것은 :
public static class StringEx
{
public static Guid ToGuid(this string str)
{
Guid guid;
Guid.TryParse(str, out guid);
return guid;
}
}
그리고 나중에 당신이 좋아하는 그것을 사용할 수에 :
이
string mestring = " ... ";
Guid guid = mestring.ToGuid();
편집은 (물론 다른 방법에게 있습니다
이) 조금 쓸모가 있지만 여기에 게시 할 것입니다 :
는 string
public class StringWrapper
{
string _string;
public StringWrapper(string str)
{
_string = str;
}
public static implicit StringWrapper operator(string str)
{
return new StringWrapper(str);
}
public static implicit string operator(StringWrapper strWrapper)
{
return strWrapper._string;
}
public static implicit Guid operator(StringWrapper strWrapper)
{
Guid guid;
Guid.TryParse(str, out guid);
return guid;
}
public static implicit StringWrapper operator(Guid guid)
{
return guid.ToString();
}
}
을 감싸 클래스와 확인이 쓸모없는 클래스하자이 같은 일을 할 :
string str = "..";
Guid guid = (StringWrapper)str;
그리고 당신이 시도 할 때 발생을 그것? –
당신은 노력했는데 .... 무슨 일이 있었습니까? –
기존 .net 유형에 대한 연산자를 오버로드 할 수 없으면'string'을'Guid'로 변환하는 확장 메소드를 제공 할 수 있습니다. –