小编bwe*_*rks的帖子

在验证用于输入数字的文本框时,有没有办法避免抛出/捕获异常?

在追求优雅的编码时,我想避免必须捕获一个异常,当我尝试验证Textbox的Text字段是一个整数时,我知道可能会抛出异常.我正在寻找类似于TryGetValue for Dictionary的东西,但Convert类似乎没有提供任何东西,除了异常.

有没有可以退回布尔让我检查?

要清楚,我想避免这样做

TextEdit amountBox = sender as TextEdit;
if (amountBox == null)
    return;
try
{
    Convert.ToInt32(amountBox.Text);
}
catch (FormatException)
{
    e.Cancel = true;
}
Run Code Online (Sandbox Code Playgroud)

支持这样的事情:

TextEdit amountBox = sender as TextEdit;
if (amountBox == null)
    return;
e.Cancel = !SafeConvert.TryConvertToInt32(amountBox.Text);
Run Code Online (Sandbox Code Playgroud)

谢谢!

c# validation casting exception winforms

2
推荐指数
1
解决办法
119
查看次数

通过Powershell在Select-Xml中使用Xpath not运算符

我正在使用csproj文件,我正在尝试编写一个cmdlet来提取项目文件引用的所有文件.这将包括所有Compile,EmbeddedResource,Resource,Content和None元素(更重要的是,它们的@Include值),但我特别想要将引用元素排除在它们引用的dll之外,这些对我来说并不重要.

我没有太多的经验,但我认为我想要的xpath表达式看起来像这样

$projectFile | Select-Xml -namespace @{msb="http://schemas.microsoft.com/developer/msbuild/2003"} -xpath "//msb:ItemGroup/*[not(self::node() = msb:Reference) and @Include]"
Run Code Online (Sandbox Code Playgroud)

但是,只要我尝试引入self :: node(),我的表达式就不会返回任何节点.我不是100%确定self :: node()是正确的方法.知道我会改变什么以使其返回,概念上,"所有包含属性的属性值都不是作为ItemGroup元素的子元素的Reference元素吗?"

powershell xpath operators csproj select-xml

2
推荐指数
1
解决办法
1035
查看次数

转义ETW格式字符串中的字符?

我正在使用新的EventSource类从我的应用程序写入Windows事件日志,到目前为止它很棒.然而,也有我观察到正在引起那些可能与问题两件事情:该格式字符串传递给事件属性不会出现被写入到事件日志之前进行正常的String.format处理.

考虑这个块:

[Event((int)LogEvent.UserCreated, Keywords=Keywords.Directory, Channel=EventChannel.Operational,
Message="Created username {0} with forum post signature {1} and homepage {2}.")]
public void UserCreated(string username, string signature, string homepageAddress)
{
    WriteEvent((int)LogEvent.UserCreated, username, signature, homepageAddress);
}
Run Code Online (Sandbox Code Playgroud)

发生了一些事情:

  • 如果我尝试将\n插入到消息的格式字符串中,则事件日志中不会打印换行符.
  • 如果签名字符串包含换行符,则会在事件日志中自然打印换行符.
  • 如果签名或homepageAddress字符串包含类似ETW的标记(%1,%2或%3),那么ETW开始用变量本身替换那些伪标记,最后我自己嵌套了嵌套的变量.

我认为,如果有对ETW转义字符,它可以被用来放换行符格式字符串,也可以让我预先处理我的字符串值,以防止这些SQL注入式的错误.

这样的转义字符是否存在?这通常是怎么做的?

c# etw event-log etw-eventsource

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

按键/热键/快捷键扩展TFS中的区域/迭代路径?

我正在做大量的工作项目工作,虽然我正在使用Tfs 2010又名VsAlm 2010,但自从第一次发布Tfs以来,这一直是我的错误.在创建新工作项时,我真的不想在我的鼠标和键盘之间来回切换203948203984次; 我真的很想用键盘完全输入sans-mouse.这通常是可能的,但是"区域路径"和"迭代路径"字段在Team Explorer客户端和Excel中都存在障碍.

这个障碍是我尝试过的任何东西都不会打开树视图进行箭头键导航.我希望这会像其他树视图一样起作用,上下移动,左/右在带有子节点的节点上执行扩展和折叠功能.然而,我尝试过的任何东西(输入,制表符,空格,ctrl-space,F2等)都会为我打开; 因此我会降低输入整个路径或切换到我的鼠标,这有时会减慢我的速度.

有什么我想念的吗?硬核,经验丰富的TFS用户:有更好的方法吗?

excel tfs keyboard-shortcuts workitem tfs2010

0
推荐指数
1
解决办法
519
查看次数