• 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

  • 相关阅读:
    Ubuntu14.04+cuda 7.5+cudnn_v4+tensorflow安装
    error C2275: “XXX”: 将此类型用作表达式非法
    DLL调试方法
    OpenCV ——双线性插值(Bilinear interpolation)
    OpenCV ——背景建模之CodeBook(2)
    OpenCV ——背景建模之CodeBook(1)
    OpenCV——GMM混合高斯模型
    OpenCV——运用于pixels war游戏
    【SpringSecurityOAuth2】源码分析@EnableOAuth2Sso在Spring Security OAuth2 SSO单点登录场景下的作用
    【Spring】简述@Configuration配置类注册BeanDefinition到Spring容器的过程
  • 原文地址:https://www.cnblogs.com/FannyChung/p/csharpbasic.html
Copyright © 2020-2023  润新知