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语句?

c# Case语句字符串或字符串

使用多个不包含breakcase语句:

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类。最后,您将有更少的重复代码,并将每个文档类型的代码很好地分开。你也会有一个更干净的设计。我现在没有时间,但如果你需要这种方法的代码帮助,让我知道,我可以帮助你。