c# Case语句字符串或字符串
本文关键字:字符串 语句 Case | 更新日期: 2023-09-27 18:17:45
switch (newButton.fileExtension)
{
case ".txt":
newButton.Image = System.Drawing.Image.FromFile(@"Some Directory'Project Code'Project images'Text document.png");
break;
case (".png") || (".jpg") || (".gif"):
newButton.Image = System.Drawing.Image.FromFile(@"Some Directory'Project images'Picture document.png");
break;
case ".doc":
newButton.Image = System.Drawing.Image.FromFile(@"Some Directory'Project Code'Project images'Word Document.png");
break;
default:
newButton.Image = System.Drawing.Image.FromFile(@"Some Directory'Project Code'Project images'Unknown Document.png");
break;
}
我想使用一个开关语句来检查newButton文件类型是什么,但是c#不允许你做"字符串"||"字符串"是否有一个工作围绕这个,或者我应该使用If Else语句?
使用多个不包含break
的case
语句:
case ".png":
case ".jpg":
case ".gif":
newButton.Image = System.Drawing.Image.FromFile(@"Some Directory'Project images'Picture document.png");
break;
一种可行的方法是
switch (newButton.fileExtension)
{
case ".txt":
newButton.Image = System.Drawing.Image.FromFile(@"Some Directory'Project Code'Project images'Text document.png");
break;
case ".png":
case ".jpg":
case ".gif":
newButton.Image = System.Drawing.Image.FromFile(@"Some Directory'Project images'Picture document.png");
break;
case ".doc":
newButton.Image = System.Drawing.Image.FromFile(@"Some Directory'Project Code'Project images'Word Document.png");
break;
default:
newButton.Image = System.Drawing.Image.FromFile(@"Some Directory'Project Code'Project images'Unknown Document.png");
break;
}
其他答案将帮助你实现你想要做的事情,但我想指出另一个方向,你可以采取
我很确定这些按钮当点击做不同的事情,因为他们代表不同的文档类型。在click处理程序中可能有与该文档类型相关的代码,然后处理程序可能调用一些其他方法,其中需要根据文档类型执行代码的不同部分。
我将创建5类:TextDocument, PictureDocument, WordDocument, DefaultDocument和BaseDocument。在BaseDocument中,你可以放置一个名为ImagePath的抽象属性和一个非抽象的DocumentImage属性,以及一个抽象方法,命名为当按钮被点击时代码执行的任何合适的方法。继承类将提供路径并设置ImagePath属性。当设置了ImagePath属性后,可以创建Image对象并设置DocumentImage属性。
寻找其他通用代码并继续将其推入BaseDocument类。最后,您将有更少的重复代码,并将每个文档类型的代码很好地分开。你也会有一个更干净的设计。我现在没有时间,但如果你需要这种方法的代码帮助,让我知道,我可以帮助你。