首页 > 解决方案 > 如何检查 Button.Tag 的第一个字母?

问题描述

所以我在我的代码中订购了带有标签的按钮,标签的第一个字母决定它是一组按钮还是另一组。我需要检查一个按钮是否在一个组或另一个组中,并且我正在尝试检查标签的第一个字母,就像一个普通的字符串 with ((Button)sender).Tag[0] == 'W'和 with((Button)sender).Tag.FirstOrDefault() == 'W'但代码给了我一个错误。我错过了什么?

标签: c#

解决方案


在 WPF 和 Winforms 中,Tag都声明为object. 因此,您需要将其转换为字符串:

var button = ((Button)sender);
var tagString = (string)button.Tag;
if (tagString[0] == 'W') ...

如果您不确定 Tag 是否始终是字符串,您可以使用as-cast:

var button = ((Button)sender);
var tagString = button.Tag as string;
if (tagString != null && tagString[0] == 'W') ...

或者使用 C# 7,您还可以使用模式匹配:

var button = ((Button)sender);
if (button.Tag is string tagString && tagString[0] == 'W') ...

推荐阅读