相关疑难解决方法(0)

测试字符串是否为guid而不抛出异常?

我想尝试将字符串转换为Guid,但我不想依赖捕获异常(

  • 出于性能原因 - 例外是昂贵的
  • 出于可用性原因 - 弹出调试器
  • 出于设计原因 - 预期并非例外

换句话说代码:

public static Boolean TryStrToGuid(String s, out Guid value)
{
    try
    {
        value = new Guid(s);
        return true;
    }
    catch (FormatException)
    {
        value = Guid.Empty;
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

不适合.

我会尝试使用RegEx,但由于guid可以括号括起来,括号包裹,没有包装,使其变得困难.

另外,我认为某些Guid值无效(?)


更新1

ChristianK有一个好主意只能抓住FormatException,而不是全部.更改了问题的代码示例以包含建议.


更新2

为什么要担心引发异常?我真的经常期待无效的GUID吗?

答案是肯定的.这就是为什么我使用TryStrToGuid -我期待坏数据.

示例1 可以通过将GUID附加到文件夹名称来指定名称空间扩展.我可能正在解析文件夹名称,检查最终后是否有文本.是一个GUID.

c:\Program Files
c:\Program Files.old
c:\Users
c:\Users.old
c:\UserManager.{CE7F5AA5-6832-43FE-BAE1-80D14CD8F666}
c:\Windows
c:\Windows.old
Run Code Online (Sandbox Code Playgroud)

示例2我可能正在运行一个使用频繁的Web服务器,想要检查一些发布的数据的有效性.我不希望无效数据占用比需要高2-3个数量级的资源.

示例3我可能正在解析用户输入的搜索表达式.

在此输入图像描述

如果他们输入GUID,我想特别处理它们(例如专门搜索该对象,或在响应文本中突出显示并格式化该特定搜索词.)


更新3 - 性能基准

测试转换10,000个好Guids和10,000个坏Guids.

Catch FormatException: …
Run Code Online (Sandbox Code Playgroud)

c# string parsing guid

180
推荐指数
10
解决办法
7万
查看次数

跟踪下载按钮,点击使用事件分析

我正在跟踪" 下载"按钮,点击具有此项代码的我的项目的网站:

function trackDownload(link) {
    try {
        _gaq.push(['_trackEvent', 'Downloads', 'Click', 'Setup executable']);
        setTimeout('document.location = "' + link.href + '"', 100);
    } catch (err) {}
    return false;
}
Run Code Online (Sandbox Code Playgroud)

按钮是这样的:

<a href="files/setup.exe" onclick="return trackDownload(this);">Download</a>
Run Code Online (Sandbox Code Playgroud)

因此,当用户单击它时,会将事件推送到Google Analytics,然后将用户重定向到该文件.

这也适用于外部链接跟踪,没有差异.

现在我的问题.我可以确定在用户重定向之前"处理"了Google Analytics事件吗?如果没有,那重定向会导致事件丢失?目前,事件正在被跟踪,但我不能肯定所有的人都.

我读过我也可以尝试一些不同的东西,将重定向功能推送到Analytics队列:

_gaq.push(function() { document.location = link.href; });
Run Code Online (Sandbox Code Playgroud)

但目前尚不清楚这是否有效,或者它是否与前一个相同.事实上,这里"调用_gaq.push [...]执行命令".

javascript tracking google-analytics

7
推荐指数
1
解决办法
2361
查看次数

标签 统计

c# ×1

google-analytics ×1

guid ×1

javascript ×1

parsing ×1

string ×1

tracking ×1