C#

C#语言

语法知识

is

检查一个类型是否兼容另一个类型 返回 bool值

lambda

说简单一点,就是一个匿名函数,执行一段处理的过程,却没有函数名字。

    void Start () {
        var go = gameObject.GetComponent

枚举

枚举变量可以和int类型的数据 互相强转

get set

string _name;
public string Name
{
get
{if(_name == "") 
returen _name;
}
set
{
    _name = value;
}
}

排序

需要重写比较方法

List abjs = new List();
abjs.Sort(
delegate (item a, item b)  /* 这个是委托 函数实现的比较的算法*/
{ 
return    a._size.CompareTo(b._size);
});    

对象的相等和同一

  • 这个相等有两种含义
  • 相等:
    1. 对象的值是相等的 (重写equal 方法 GetHashCode())
    2. 对象指向同一个内存空间
    3. 值类型和引用类型都可以比较,一个比较值,一个比较引用是否相等。不需要重写 equal 方法。
    4. 判断是否是引用类型 ,或者值类型
      值类型 都是继承 ValueType 类;
      public ValueType ss;
      ss = (?);
      ss 是false ; 就是非值类型

拆箱 装箱

  • 拆箱: 引用类型转换成值类型 (根据箱子编号,拿货)
  • 装箱: 值类型数据转换成引用类型(东西放箱子里,要箱子编号)

连续 = = =

  • x=y=z 从右往左赋值
  • 类型不同不能赋值成功的

泛型

使用泛型不需要访问源码

广泛可以套用相同的 处理过程 ,一般为类型不同类型的数据进行同样的操作

     static void Swap(ref T lhs, ref T rhs)
    {
        T temp;
        temp = lhs;
        lhs = rhs;
        rhs = temp;
    }
    
    public static void TestSwap()
    {
        int a = 1;
        int b = 2;

        Swap(ref a, ref b);
        System.Console.WriteLine(a + " " + b);
    }

    
    class GenericList2
    {
    //No warning
    void SampleMethod() { }
    }

接口

  • 定义一个接口,就必须实现他的方法,接口中的方法,不能自己写实现。
  • 接口中只能包含方法、属性、索引器和事件的声明。不允许声明成员上的修饰符
  • 子类如果继承了该方法,就必须实现接口中的方法

异步处理

当一个操作需要执行很久的时候,在此期间,程序如果等待其完成再进行下一个操作,那就是普通的同步处理,而异步操作就是在这个操作还没完成的时候,进行其他的操作,两个操作同时进行。这就是异步处理。异步处理其实使用的是多线程,开辟了一个新的线程,完成一个处理过程。

编程语言

一门语言最需要的要素:

  1. 变量
  2. 赋值(绑定)
  3. 运算
  4. 函数
  5. 调用

实现

  1. 通过模式匹配 match 进行分支判断
  2. 使用let 限定局部变量 并求值
  3. 来自王垠的
(define (tree  x)
  (match x
    [(? number? x) x]
    [`(,op,s1,s2)
     (let ((v1 (tree s1)) ;局部变量 v1 v2
           (v2 (tree s2)))
       (match  op         ;match Racket自带的模式匹配
         ['+ (+ v1 v2)]
         ['+ (+ v1 v2)]
         ['* (* v1 v2)]
         ['/ (/ v1 v2)]               
         )
       )
     ]  
    )
  )

lisp过程作为参数传入函数中运算

#lang racket
(define dx 0.001)
(define (der g) ;g 作为一个过程(函数)当作参数,传递到der 求导函数
(lambda (x)
  (/ (- (g (+ x dx)) (g x)) dx)) ; (f(x+dx) - f(x))/dx  dx--->0 
  )
(define (square x) ;求平方函数
  (* x x))
((der square)45) ;对 lambda 中 x 赋值 x^2 -> 2x

U3D

bug

for (int i = 0; i < toggles.Length; i++)
          {
              int index = i;  //这个位置要赋值出来
              toggles[i].onValueChanged.AddListener((bool value) => OnToggleChange(value, index + 1));
          }

machine动画

Layer 用于区分不同身体部位的动画,上身一个层,下身一个层

如果你们喜欢

并且支持我后续的写作,欢迎支付宝捐赠

C#_第1张图片
加好友

你可能感兴趣的:(C#)