如何使用enum
本文关键字:enum 何使用 | 更新日期: 2023-09-27 18:21:48
我在新类中创建的枚举这个类在dll(库项目)中我在这个解决方案中有两个项目,第一个dll(库)和第二个windows形式:
我创建并想要使用的枚举是DannysCommands:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Threading;
namespace Capture.Interface
{
public enum DannysCommands
{
Displayoverlays,
Dontdisplayoverlays
}
public enum Direct3DVersion
{
Unknown,
AutoDetect,
Direct3D9,
Direct3D10,
Direct3D10_1,
Direct3D11,
Direct3D11_1,
}
[Serializable]
public delegate void RecordingStartedEvent(CaptureConfig config);
[Serializable]
public delegate void RecordingStoppedEvent();
[Serializable]
public delegate void MessageReceivedEvent(MessageReceivedEventArgs message);
[Serializable]
public delegate void ScreenshotReceivedEvent(ScreenshotReceivedEventArgs response);
[Serializable]
public delegate void DisconnectedEvent();
[Serializable]
public delegate void ScreenshotRequestedEvent(ScreenshotRequest request);
[Serializable]
public delegate void DisplayTextEvent(DisplayTextEventArgs args);
public enum MessageType
{
Debug,
Information,
Warning,
Error
}
[Serializable]
public class CaptureInterface : MarshalByRefObject
{
在同一个项目中,有两条线可以绘制,我想让它在Displayoverlay绘制时和在Dontdisplayoverlay不绘制时绘制。
这个类我也可以从form1从项目窗口窗体调用。在表格1中,我想使用按钮点击,并用布尔变量进行检查,这样当它是Displayoverlay时绘制线条,而当它是Dontdisplayoverlay时不绘制线条。
在dll(库)项目中,还有另一个具有绘图线的类:
if (Capture.Interface.DannysCommands.Displayoverlays)
{
}
_spriteEngine.DrawString(textElement.Location.X + 1800, textElement.Location.Y, textElement.Text, textElement.Color.R, textElement.Color.G, textElement.Color.B, textElement.Color.A, font);
_spriteEngine.DrawString(textElement.Location.X + 1800, textElement.Location.Y + 25,
DateTime.Now.ToString("h:mm tt"), textElement.Color.R, textElement.Color.G, textElement.Color.B, textElement.Color.A, font);
我知道枚举不是bool,所以我做的这个IF不工作,给出错误。
如何在form1中使用枚举,以及在带有绘制线的类中使用枚举?
在form1中,我想让当我点击一个按钮时,一次绘制,第二次点击按钮,不要使用枚举绘制。
实际上不需要使用Enum。据我所知,你只需要划清界限一次。假设你有一个表格:
public partial class FrmMain : Form
{
private bool isClicked;
private void FrmMain_Load(object sender, EventArgs e)
{
isClicked = false;
}
private void Button1_Click(object sender, EventArgs e)
{
if (isClicked) return;
isClicked = true;
//...draw lines here...
}
}
Enum是指当你有选项,并且你想给程序员一组标准的选择,以限制输入,当然还有不需要的输入的错误。
枚举,您可以将其与switch
语句一起使用。
您需要设置一个类型为DannysCommands
的变量。您可以像往常一样使用该变量并在if语句中检查其值。因此:DannysCommandscmd=DannysCommons.InitialValue;
在某个时刻,您将执行cmd = DannysCommands.DisplayOverlays;
然后:
if(cmd == DannysCommands.DisplayOverlays)
{
...
}
请注意,您正在使用枚举来跟踪状态。虽然还有其他方法可以使用枚举,但我相信这是最自然的方法。