C#容易忽略的小知识

一:时间格式话中H和h的区别

DateTime.ToString("yyyy-MM-dd HH:mm:ss");//转化成24小时

DateTime.ToString("yyyy-MM-dd hh:mm:ss");//转化成12小时


 二:跳出for foreach 

1:break--跳出for全部(这个循环工作不干了,继续其他工作)

2:continue--跳出本次循环,进入下次循环(这次不干了,下次继续)

3:return --整个方法、函数都停了(撂挑子,啥不干了)


 三:关于四舍六入五取余

c#中的转int类型遵守的是四舍六入五取余而不是四舍五入

复制代码
            var x = 50.5;
            var y = 51.5;
            Console.WriteLine(Math.Round(x, 0));//五舍六入
            Console.WriteLine(Math.Round(x, 0, MidpointRounding.AwayFromZero));//四舍五入
            Console.WriteLine((int)x);
            Console.WriteLine(Convert.ToInt32(x));//四舍六入五取余
            Console.WriteLine((int)y);
            Console.WriteLine(Convert.ToInt32(y));//四舍六入五取余
            Console.ReadKey();
复制代码

  想要使用四舍五入要用math.round(x,0,MidpointRounding.AwayFromZero);


 四:list、数组 相互转换

list转数组的时候需要声明也可以直接toarray();

 


五:注释的意义:

下面引用一段关于注释的要求:1):能够准确反映设计思想和代码逻辑 2):描述业务含义,使别的程序员能够迅速了解到代码背后的信息。完全没有注释的大段代码对于阅读者形同天书,注释是给自己看的,及时隔很长时间,也能清晰理解当时的思路;注释也是给继任者(不是别人是继任者)看的,使其能够快速接替自己的工作。


 六:[AuthorizeIgnore]

字面意思就是忽略验证,实际作用是在进行mvc项目中Attributes验证的整个流程中如果有那个环节不需要进行验证则在方法头上加上该标签

 [AuthorizeIgnore]
        public ActionResult Regsiter()
        {
            return View();
        }

这样就不走下图的方法(写在admincontrolbase中,为了验证)

 /// <summary>
        /// 方法执行前,如果没有登录就调整到Passport登录页面,没有权限就抛出信息
        /// </summary>
        /// <param name="filterContext"></param>
        protected override void OnActionExecuting(ActionExecutingContext filterContext)

 七:字符串转化数组

 var str = Branchid.Split(',');
//方法可配置string int 之间相互转换
int[] ms = Array.ConvertAll<string, int>(str, s => int.Parse(s));

 


八:mvc中model设置长度验证
 [MaxLength(16, ErrorMessage = "最大长度16")]
    public string SomeProperty{get;set;}
//这个如果在页面不起作用的话可以试一试
[StringLength(16, ErrorMessage = "最大长度16")]

 


 

九:lamd 中的order by 
//两个条件为并列 order by id,status desc
return iqaccount.OrderByDescending(a => a.ID).OrderByDescending(a=>a.Status).ToPagedList(request.PageIndex, request.PageSize);
//两个条件有先后顺序 select * from  (select * from table order by id desc ) a order by a.status desc
return iqaccount.OrderByDescending(a => a.ID).ThenByDescending(a => a.Status).ToPagedList(request.PageIndex,request.PageSize);