C# 特罗林类型值
我在我的应用程序中有一个演讲课,我想看看它是在听、录音、听写还是没有反应 我想做的是能够将某种变量(SpeechState)指定为3个可能值中的1个,并对其进行检查,如下所示:C# 特罗林类型值,c#,.net,C#,.net,我在我的应用程序中有一个演讲课,我想看看它是在听、录音、听写还是没有反应 我想做的是能够将某种变量(SpeechState)指定为3个可能值中的1个,并对其进行检查,如下所示: startListeningButton_Click(object sender, EventArgs e) { SpeechState = SpeechState.Listening; } stopListeningButton_Click(object sender, EventArgs e) { if
startListeningButton_Click(object sender, EventArgs e)
{
SpeechState = SpeechState.Listening;
}
stopListeningButton_Click(object sender, EventArgs e)
{
if(SpeechState.Listening)
{
// Code to STOP listening goes here.
}
}
我已经尝试过实现Troolian,但这并不完全是我想要的。我想要的是类似的东西:
if(checkBox1.CheckState == CheckState.Checked)
{
// Do something
}
我怎样才能做到这一点呢?你应该为此做出努力
public enum SpeechState
{
Listening,
Recording,
Dictating,
Unresponsive
}
然后,您可以完全按照所显示的设置来使用此选项,尽管检查内容为:
if(this.SpeechState == SpeechState.Listening)
根据评论进行编辑: 为了将其放置在类中,您需要一个属性来存储它:
public class YourClass
{
public SpeechState SpeechState { get; set; }
}
然后,您可以将类的此属性设置为一个值。您应该为此设置一个值
public enum SpeechState
{
Listening,
Recording,
Dictating,
Unresponsive
}
然后,您可以完全按照所显示的设置来使用此选项,尽管检查内容为:
if(this.SpeechState == SpeechState.Listening)
根据评论进行编辑: 为了将其放置在类中,您需要一个属性来存储它:
public class YourClass
{
public SpeechState SpeechState { get; set; }
}
然后,可以将类的此属性设置为值。使用枚举:
public enum SpeechState
{
Listening,
Recording,
Dictating,
Unresponsive
}
使用枚举:
public enum SpeechState
{
Listening,
Recording,
Dictating,
Unresponsive
}
制作一个
SpeechState
?Trolean:一个俚语,用来描述在Win32 API的许多地方使用的微软的真/假/错误方案。它用来描述什么东西有三种状态,而布尔值有两种状态(通常为真或假)。另一个区别是使用可为空的布尔值。这允许3种状态,如果您将其存储在数据库中,这会有所帮助。Trolean是一个可怕的词。@Hogan:Troolin是。创建一个SpeechState
?Trolean:一个俚语,用来描述在Win32 API的许多地方使用的Microsoft的真/假/错误方案。它用来描述什么东西有三种状态,而布尔值有两种状态(通常为真或假)。另一个区别是使用可为空的布尔值。这允许3种状态,如果您将其存储在数据库中,这会很有帮助。Trolean是一个可怕的词。@Hogan:Troolin是。我试着这样做时,我认为它不起作用,无论我如何分配它都不起作用。我该如何分配它?你说SpeechState=SpeechState.Recording代码>枚举是整数数据类型之上的语法糖。每个值都是一个整数值。在上面的示例中,监听
为0,录制
1,听写
2,无响应
3。你也可以说SpeechState=(SpeechState)123456789代码>,这是完全合法的。没有要求分配给某个枚举的值对该特定枚举实际有效。@NicholasCarey,这是一个很好的答案。当我尝试此操作时,我认为它不起作用,无论我如何分配它都不起作用。我该如何分配它?你说SpeechState=SpeechState.Recording代码>枚举是整数数据类型之上的语法糖。每个值都是一个整数值。在上面的示例中,监听
为0,录制
1,听写
2,无响应
3。你也可以说SpeechState=(SpeechState)123456789代码>,这是完全合法的。没有要求分配给某个枚举的值对该特定枚举实际有效。@NicholasCarey,这是一个很好的答案。当我尝试此操作时,我认为它不起作用,无论我如何分配它都不起作用。我该如何分配给它?@Jase您的类上需要一个字段或属性:public SpeechState SpeechState{get;set;}
可能应该调用SpeechState
枚举其他内容,比如if(this.mySpeechState==SpeechState.listing)
?用与类型相同的名称调用实例化将不起作用?@John有什么原因吗?使用这个名称可以很清楚地说明属性是什么——首先有名字被选中的原因:(参见<代码>复选框。CealStest< /Cord>)一个很好的例子:“我想我在想C++不是C。当我尝试这个时,我认为它不起作用,无论我如何尝试分配给它,它都不会起作用。我该如何分配给它?@Jase您的类上需要一个字段或属性:public SpeechState SpeechState{get;set;}
可能应该调用SpeechState
枚举其他内容,比如if(this.mySpeechState==SpeechState.listing)
?用与类型相同的名称调用实例化将不起作用?@John有什么原因吗?使用这个名称可以很清楚地说明属性是什么——首先有名字被选中的原因:(参见<代码>复选框。CealStest< /Cord>)一个很好的例子:“我想我在想C++不是C。