zoukankan      html  css  js  c++  java
  • C# 基础(更新中)

    Data Structure

    There're two types of variables in C#, reference type and value type.
    Enum:

    enum Color{
    Red=0,
    Green=1
    }
    
    //equals to 
    enum Color{
    Red,//start from 0 as default
    Green
    }
    

    int to enum:(Color)val

    Arrays and Collections

    Array

    declare array:

    new int[10]
    new int[10]{xx,xx.....};
    new int[]{aa,aa};
    

    Collection

    List<string> theList=new List<string>();//can use value type here, not only reference type
    theList.Count;//size of the list
    

    class

    when calling same name class with different namespace, it will use class of same namespace first, then System namespace.

    fields and properties

    1. can't use var to declare fields like var count=0,must use int count=0
    2. const is static, so we can't use them together like public static const int count=0
    3. rules of naming fields and property: first letter with uppercase is public, first letter with lowercase is private.

    Auto-implemented property: remove their private fields.
    initiate with default: public MyClass val {get;set;} = new MyClass();

    anonymous type

    for the cases:

    • only use in one function and not need for other functions
    • only exists for only short time, and will be stored to other places

    var val=new {name='Alex', age=12};

    Extensions

    class TheExtensionClass{
        public int toInt(this string value){
            return int.Parse(value);
        }
    }
    
    //so that the function can be called on string
    str.toInt();
    

    function

    out, in and ref

    if use out/in/ref for value type variable, then it will convert to reference type.
    must initiate out variable in the function before use it.

    default parameter and named parameter

    Default parameter

    • must declared after non-default parameter
    • if we don't want to give value to the first default parameter but want to give the second default parameter, we can't do this without named parameter

    Named parameter:
    can call the function and break the sequence of parameters, especially for default parameter

    special function:lambda

    for the cases:

    • short function
    var res=theList.Find(MyFunc);
    boolean MyFunc(Student aStudent){
        return studentName="abc";
    }
    
    theList.Find(student=>{
        return studentName="abc";
    });
    
    theList.Find(student=> studentName="abc");
    

    Event and asynchronous programming

    Event

    for the cases:
    when executing monitor function, it will automatically execute the monitored function

    1. declare Action variable in class A:Action action
    2. binding the action variable to f2 (monitored function) of class B:action+=f2
    3. trigger the event: in f3(monitor function) call the action with action();
      ### asynchronous programming
      like event
      RequestSupport(CallBackFunc)

    Exception and log

    Exception

    try{
    }catch{
    }
    try{
    }catch(FormatException){
    }
    try{
    }catch(FormatException e){
        print e;
        print e.Message;
    }
    

    Log

  • 相关阅读:
    linux下自动同步internet时间
    String,StringBuffer与StringBuilder的区别
    Spring Boot CLI安装
    java中Date与String的相互转化
    MyBatis Sql语句中的转义字符
    MyBatis详解 与配置MyBatis+Spring+MySql
    MyBatis的foreach语句详解
    不可变集合 Immutable Collections
    Java日期时间使用总结
    Java将一段逗号分割的字符串转换成一个数组
  • 原文地址:https://www.cnblogs.com/FannyChung/p/csharpbasic.html
Copyright © 2011-2022 走看看