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;
}
我想使用switch语句检查newButton文件类型是什么,但是c#不允许你做“string”|| “字符串”是否有解决方法,或者我应该使用If Else语句?
答案 0 :(得分:5)
只需使用多个case
语句,而不使用break
:
case ".png":
case ".jpg":
case ".gif":
newButton.Image = System.Drawing.Image.FromFile(@"Some Directory\Project images\Picture document.png");
break;
答案 1 :(得分:3)
应该有效的一个可能是
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;
}
答案 2 :(得分:0)
其他答案将帮助您实现您想要做的事情,但我想指出您可以采取的另一个方向。
我很确定这些按钮在点击时会做不同的事情,因为它们代表不同的文档类型。您可能在单击处理程序中有与该文档类型相关的代码,然后处理程序可能会调用其他一些方法,您需要根据文档类型执行代码的不同部分。
我将创建5个类:TextDocument,PictureDocument,WordDocument,DefaultDocument和BaseDocument。在BaseDocument中,您可以放置一个名为ImagePath的抽象属性和一个非抽象的DocumentImage属性,以及一个名为任何适合单击按钮时要执行的代码的抽象方法。继承类将提供路径并设置ImagePath属性。设置ImagePath属性后,可以创建Image对象并设置DocumentImage属性。
查找其他常用代码并继续将其推送到BaseDocument类。在最后,您将获得更少的重复代码,并且您将使每个文档类型的代码很好地分开。您还将拥有更清洁的设计。我现在没有时间,但如果您需要有关此方法的代码的帮助,请告诉我,我可以帮助您。