C#IF语句没有正确破坏

1 c#

一直撞到我的头,谷歌试图找到我的问题的答案.

当执行下面的IF语句时,似乎完全通过IF和ELSE语句运行.

  if (IsPostBack)
         {
             Boolean bFileOK = false;

             if (fulReagentImg.HasFile)
             {
                 String sFileExtension = System.IO.Path.GetExtension(fulReagentImg.FileName).ToLower();
                 String sFileExtensionLabel = sFileExtension;
                 lblFileExtension.Text = sFileExtensionLabel;
                 String[] allowedExtensions = { ".gif", ".png", ".jpeg", ".jpg" };
                 for (int i = 0; i < allowedExtensions.Length; i++)
                 {
                     if (sFileExtension == allowedExtensions[i])
                     {
                         bFileOK = true;
                     }
                     else
                     {
                         lblException.Text = "Can only upload .gif, .png, .jpeg, .jpg";
                         lblException.CssClass = "red";
                     }

 }
Run Code Online (Sandbox Code Playgroud)

任何想法为什么它不停止使用bFileOK = true?

SLa*_*aks 5

你的循环是完全错误的.
如果用户的扩展名不等于列表中的所有扩展名,则会显示错误.

你应该调用这个Contains()方法,最好是a HashSet<String>.

  • @ChaosPandion:因为它是O(1). (3认同)