Guid.Parse 这个有的吧那就自己写一个tryparse的:
bool tryparse(string s, out guid g)
{
bool isok = false;
try
{
g = Guid.Parse(s);
}
catch
{
return false;
}
return true;
}
bool tryparse(string s, out guid g)
{
bool isok = false;
try
{
g = Guid.Parse(s);
}
catch
{
return false;
}
return true;
}
解决方案 »
- 求教一道算法题
- 【SOS】【SOS】【SOS】【SOS】【SOS】【SOS】【SOS】【SOS】【SOS】50分
- textchange事件焦点问题````````````````````````````````````
- C#如何写扩展存储过程
- 请教大家乐,谢谢
- 请教:用C#写的TCPListener监听程序能否监听用VB写的TCPClient请求?
- 高手请进:如何用 gdi+ 实现winform任务管理器中的cpu占有率图或者内存使用率图,超难得问题,多谢了
- win form窗体之间交互信息
- 如何给自定义类型文件关联图标和打开程序
- contextmenu 用户自绘的问题
- vs2010 winform应用程序打包问题
- 谁能告诉我怎样才可以用c#连接加密ftp(ssl)实现上传下载啊
Guid.Parse(s);
.NET3.5 不支持 Guid.Parse 的
{ Regex reg = new Regex("^[A-F0-9]{8}(-[A-F0-9]{4}){3}-[A-F0-9]{12}$", RegexOptions.Compiled); return reg.IsMatch(strSrc); }
long num3;
int num = 0;
int parsePos = 0;
if (guidString[0] == '{')
{
if ((guidString.Length != 0x26) || (guidString[0x25] != '}'))
{
result.SetFailure(ParseFailureKind.Format, "Format_GuidInvLen");
return false;
}
num = 1;
}
else if (guidString[0] == '(')
{
if ((guidString.Length != 0x26) || (guidString[0x25] != ')'))
{
result.SetFailure(ParseFailureKind.Format, "Format_GuidInvLen");
return false;
}
num = 1;
}
else if (guidString.Length != 0x24)
{
result.SetFailure(ParseFailureKind.Format, "Format_GuidInvLen");
return false;
}
if (((guidString[8 + num] != '-') || (guidString[13 + num] != '-')) || ((guidString[0x12 + num] != '-') || (guidString[0x17 + num] != '-')))
{
result.SetFailure(ParseFailureKind.Format, "Format_GuidDashes");
return false;
}
parsePos = num;
if (!StringToInt(guidString, ref parsePos, 8, 0x2000, out num2, ref result))
{
return false;
}
result.parsedGuid._a = num2;
parsePos++;
if (!StringToInt(guidString, ref parsePos, 4, 0x2000, out num2, ref result))
{
return false;
}
result.parsedGuid._b = (short) num2;
parsePos++;
if (!StringToInt(guidString, ref parsePos, 4, 0x2000, out num2, ref result))
{
return false;
}
result.parsedGuid._c = (short) num2;
parsePos++;
if (!StringToInt(guidString, ref parsePos, 4, 0x2000, out num2, ref result))
{
return false;
}
parsePos++;
num = parsePos;
if (!StringToLong(guidString, ref parsePos, 0x2000, out num3, ref result))
{
return false;
}
if ((parsePos - num) != 12)
{
result.SetFailure(ParseFailureKind.Format, "Format_GuidInvLen");
return false;
}
result.parsedGuid._d = (byte) (num2 >> 8);
result.parsedGuid._e = (byte) num2;
num2 = (int) (num3 >> 0x20);
result.parsedGuid._f = (byte) (num2 >> 8);
result.parsedGuid._g = (byte) num2;
num2 = (int) num3;
result.parsedGuid._h = (byte) (num2 >> 0x18);
result.parsedGuid._i = (byte) (num2 >> 0x10);
result.parsedGuid._j = (byte) (num2 >> 8);
result.parsedGuid._k = (byte) num2;
return true;