
c#
映燃
厚积薄发。
展开
-
C#自定义一个简单的栈结构
怎么理解栈结构?举一个简单的例子,你往一个盒子你放东西,先放的东西肯定是在上面,你要取的话只能从上面一件一件的拿出来,然后才可以拿到最底部的东西。namespace ConsoleTest{ public class Stack { Entry top; public void Push(object data) { ...原创 2019-01-05 14:11:33 · 489 阅读 · 1 评论 -
理解值类型和引用类型
都知道c#的基本类型除了string之外都是值类型,但是为什么呢?因为字符串的大小不确定,更加高效的做法是在运行时动态分配内存,而不是在编译时静态分配.举个例子:int i= 42; //声明并初始化iint copyi = i; //copyi 包含i中的数据的拷贝,i和copyi都包含值42i++; //i递增不影响copyi,i现在的值是43,copyi...原创 2019-09-14 14:11:31 · 276 阅读 · 0 评论 -
有趣的private现象,或者说是要正确理解什么是私有数据?私有在哪里?
看代码:class Man { private int age; public Man Clone() { Man man = new Man(); man.age = this.age; //看这里 return man; } }我们知...原创 2019-09-14 14:31:04 · 392 阅读 · 0 评论 -
使用可空类型,避免GC的产生.
先看代码吧: class Program { private static Man _man = new Man(); private static Man man2 = new Man();//这个new Man()会成为一个GC static void Main(string[] args) ...原创 2019-09-14 14:47:56 · 211 阅读 · 0 评论 -
ref 和 out
在c#中,默认的参数传递是对值的拷贝,在方法中对参数的修改是不会影响到参数变量的原始值的.先看代码: class Program { private static int age = 50; static void Main(string[] args) { add(age); Consol...原创 2019-09-14 15:08:30 · 148 阅读 · 0 评论 -
自定义一个线程安全的Dictionary
最近在看ilruntime源码的时候看到写的很好的一个案例,先记录下来,方便以后使用.using System;using System.Collections;using System.Collections.Generic;using System.Collections.ObjectModel;using System.Diagnostics;using System.Runti...原创 2019-09-23 22:26:12 · 462 阅读 · 0 评论