zoukankan      html  css  js  c++  java
  • C#/Net的语法和一些小技巧和语言特性笔记

    笔记,备查:

    Q.net工程 全局 条件自定义预编译宏:

    有使用会用到#define XXXX预编译宏,实现代码条件编译.

    但是#define XXXX 只是应用于单个.CS文件的.

    如果要全局定义#define XXXX 这需要:

    全局(项目)定义#define XXXX 示例:

    项目->右键(right-click)->属性(Property)->生成()->常规()->条件编译和符号->{{写入使用数据库,如-> Q_SqliteDB}}

    Q.判断Debug或Release环境(2019-02-28):

    #if DEBUG
        Console.WriteLine("hello Debug Develop");  
    #else
        Console.WriteLine("hello Release Develop");  
    #endif

    Q.switch case when的使用:

      8.0新特性,把贼好用!(熟悉T-SQL的会感觉很亲切,新的switch扩展变得和T-SQL的Case When Then End类似,可以支持不等式区间的布尔表达式)

      其可读性吊锤if else!

      使用示例(以判断学生成绩区间为例):

      Model:

        class Student
        {
            ///
            public int grade { get; set; }
            public string name { get; set; }
            public string level { get; set; }
        }

      Switch case  使用示例:

                //测试数据
                IList<Student> students = new List<Student>()
                {
                    new Student { grade = 50, name = "A_People", level = "None" },
                    new Student { grade = 70, name = "B_People", level = "None" },
                    new Student { grade = 91, name = "C_People", level = "None" }
                };
                //-----------------------------------------------
                foreach (Student student in students)
                {
                    switch (student)
                    {
                        case Student obj when obj.grade < 60:
                            {
                                obj.level = "不及格";
                                break;
                            }
                        case Student obj when obj.grade > 60 && obj.grade <= 70:
                            {
                                obj.level = "及格";
                                break;
                            }
                        case Student obj when obj.grade > 60 && obj.grade <= 70:
                            {
                                obj.level = "良好";
                                break;
                            }
                        case Student obj when obj.grade >= 90:
                            {
                                obj.level = "优秀";
                                break;
                            }
                        default:
                            {
                                student.level = "None";
                                break;
                            }
                    }
                    //case Student obj 中的 obj 局部变量 是 对变量switch(student)中student变量的引用
                    Console.WriteLine($"学生:{student.name} 成绩:{student.level}");
  • 相关阅读:
    iOS开发—block介绍
    iOS开发—页面传值汇总
    解决Xcode升级后一些Xcode插件不能使用的问题
    记录一些优秀的iOS第三方框架
    【转】iOS开发—SQLite的简单使用
    iOS—dictionary写入文件出现的几个问题
    NSUserDefaults 简介,使用 NSUserDefaults 存储自定义对象
    【原】自定义tableviewcell中多个button点击实现不同功能
    【转】自定义tableViewCell中button push viewcontroller的实现(delegate和Block)
    限制UITextField只可以输入数字
  • 原文地址:https://www.cnblogs.com/linqing/p/10452764.html
Copyright © 2011-2022 走看看