C#Case statation string或string

C#Case statation string或string,c#,switch-statement,C#,Switch Statement,我想使用switch语句来检查newButton文件类型是什么,但是c不允许您执行“string”| |“string”是否有解决方法,或者我应该只使用If-Else语句?只需使用多个case语句,它们之间不带break: switch (newButton.fileExtension) { case ".txt": newButton.Image = System.Drawing.Image.Fro

我想使用switch语句来检查newButton文件类型是什么,但是c不允许您执行“string”| |“string”是否有解决方法,或者我应该只使用If-Else语句?

只需使用多个
case
语句,它们之间不带
break

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;

            }

应该起作用的一种可能性是

case ".png":
case ".jpg":
case ".gif":
    newButton.Image = System.Drawing.Image.FromFile(@"Some Directory\Project images\Picture document.png");
    break;

其他答案将帮助你实现你想做的事情,但我想指出你可以采取的另一个方向

我敢肯定,这些按钮在单击时会执行不同的操作,因为它们代表不同的文档类型。您可能在click处理程序中有与该文档类型相关的代码,然后该处理程序可能会调用一些其他方法,在这些方法中,您需要根据文档类型执行代码的不同部分

我将创建5个类:TextDocument、PicturedDocument、WordDocument、DefaultDocument和BaseDocument。在BaseDocument中,您可以放置一个名为ImagePath的抽象属性、一个名为non-AbstractDocumentImage属性和一个名为Anwhere的抽象方法,以便在单击按钮时执行代码。继承类将提供路径并设置ImagePath属性。设置ImagePath属性后,可以创建图像对象并设置DocumentImage属性


寻找其他通用代码并将其推送到BaseDocument类。最后,您将拥有更少的重复代码,并且每个文档类型的代码将很好地分开。你也将有一个更干净的设计。我现在没有时间,但如果您需要此方法的代码帮助,请告诉我,我可以帮您

好主意,不管文件类型如何,我都使用相同的方法。这个项目是一个云存储应用程序,所以方法是下载、上传、删除等。这些方法独立于文件类型。唯一的区别是图形图像图标。谢谢你的建议,不过我会在将来的项目中把它牢记在心。
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;

        }