zoukankan      html  css  js  c++  java
  • C# basic

    1. output

    Console.WriteLine("hello world");

    2. naming convention

    variable: start with lower-case, use camel-case

    double thePrice = 14.95;

    for the rest (class name, method name, const): start with upper-case, use camel-case

    const int HomeRunRecord = 61;

    3. value type

    similar to primitive in jave

    for example: int, float, bool

    4. out

    The out keyword causes arguments to be passed by reference. This is like the ref keyword, except that ref requires that the variable be initialized before it is passed. To use an out parameter, both the method definition and the calling method must explicitly use the out keyword.

    class OutExample
    {
        static void Method(out int i)
        {
            i = 44;
        }
        static void Main()
        {
            int value;
            Method(out value);
            // value is now 44
        }
    }

     5. ?? operator

    int a = (x ?? 0);

    equals to

    int a = (x != null? x:0);

     6. is (check type compatible)

    static void Test(object o)
        {
            Class1 a;
    
            if (o is Class1)
            {
                Console.WriteLine("o is Class1");
                a = (Class1)o;
                // Do something with "a."
            }
        }

    7. compare string

    not like Java, in which == and equals are different.

    for string in c#, == and Equals() are the same.

    if (s1.Equals(s2)){}

    equals 

    if (s1 == s2) {}

    8. define 2d array

    string[,] strs = new string[3, 4];

     access element in 2d array

    strs[1, 2] = "hello";

    9. List

    var fruits = new List<string>();
    fruits.Add("apple");

    10. foreach

    foreach (var item in fruits)
    {
            Console.WriteLine(item);
    }

    11. dictionary

                var inventory = new Dictionary<string, double>();
                inventory.Add("apples", 56);
                if (inventory.TryGetValue("apples", out value))
                {
                    Console.WriteLine("apple value:" + value);
                }

    12. encapsulation

    class Fruit
        {
            private string name;
    
            public string Name
            {
                get { return name; }
                set { name = value; }
            }
    
        }

    the second line is a method call

                var f1 = new Fruit();
                f1.Name = "apple";

     below is a same definition of name

    public string Name { get; set; }

    13. override method

            public override string ToString()
            {
                return base.ToString();
            }

    14. extend class

         class Produce
        {
            private string name;
    
            public Produce(string name)
            {
                Name = name;
            }
         }
    
        class Fruit : Produce
        {
            public Fruit(string name):
                base(name)
            {
    
            }
        }

    15. as, is

     class A
        {
            
        }
        class B : A
        {
    
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                B obj = new B();
                A obj2 = obj as A;
                if (obj is A)
                {
                    Console.WriteLine("obj is A");
                }
                Console.ReadKey();
            }
        }

    "as" is safer than below, it return null if failed to cast

    A obj2 = (A)obj;
  • 相关阅读:
    算法|LeetCode之找零钱[Java]
    算法|LeetCode之最大子段和[Java]
    算法|LeetCode之打家劫舍[Java]
    设计模式|观察者模式
    设计模式|原则—依赖倒置原则
    设计模式|原则—开闭原则
    数据库|MyBatis项目配置案例详解与Web下的增删改查实现[附项目源码]
    数据库|深入浅出MYSQL数据库—思维导图[附下载链接]
    算法|深度优先搜索(DFS)与广度优先搜索(BFS)的Java实现
    Java|单向链表的实现
  • 原文地址:https://www.cnblogs.com/phoenix13suns/p/5140994.html
Copyright © 2011-2022 走看看