C#其他知识

.NET理解为一个运行库环境和一个全面的基础类库。

.NET三个关键实体(构造块):CLR、 CTS、 CLS

公共语言运行库层为CLR 。功能:定位加载和管理.NET类型。也负责底层的工作如内存管理,处理线程等等。

公共类型系统:CTS 。 描述了运行库所支持所有可能的数据类型和编程结构。

公共语言规范:CLS。定义所有.NET都支持的公用类型和编程结构的子集。

Reflector查看程序集,反编译。

三层架构

三层架构分为UI(表现层),BLL(业务逻辑层) DAL(数据访问层)

 

使用三层架构的目的是解耦。 任何一层发生变化都不会影响到另外一层。结构清晰,可维护性高,有利于同步开发。

两者主要功能是用来返回多个值

给个例子:

 class test
    {
        public int getParts(double n, out double frac)
        {
            int whole;

            whole = (int)n;

            frac = n - whole; //pass fractional小数 part back through frac 
            return whole;     //return integer portion 返回整数部分   
        }
        class Program
        {
            static void Main(string[] args)
            {

                test Tout = new test();
                int i;
                double f;
                i = Tout.getParts(12666.56789, out f);
                Console.WriteLine("整数部分:" + i);
                Console.WriteLine("小数部分:{0:#.###}", f);
                Console.WriteLine("小数部分:" + f);
                Console.ReadKey();//监听键盘事件,按任意键执行退出

            }
        }
    }

效果如下:

成员重载:当定义一组名字相同的成员(它们的参数数量或者类型不同时),这样的成员被叫做重载。 

C#的+符号被编译器处理为String.Concat()调用。

堆和栈的区别

栈 是先进后出,后进先出。
堆 树形数据结构,通常是而叉堆,大顶堆或者小顶堆。堆的存取是随意的。
堆和栈的区别

内存中的堆区和栈区

堆和栈的区别主要有五大点,分别是:
1.申请方式的不同。栈由系统自动分配,而堆是人为申请开辟;
2.申请大小的不同。栈获得的空间较小,而堆获得的空间较大;
3.申请效率的不同。栈由系统自动分配,速度较快,而堆一般速度比较慢;
4.存储内容的不同。栈在函数调用时,函数调用语句的下一条可执行语句的地址第一个进
栈,然后函数的各个参数进栈,其中静态变量是不入栈的。而堆一般是在头部用一个字节存放堆
的大小,堆中的具体内容是人为安排;
5.底层不同。栈是连续的空间,而堆是不连续的空间。
堆区和栈区的区别

对于引用类型的任何对象,它所有的数据成员都存放在堆里,无论它们是值类型还是引用类型.

声明类类型的变量所分配的内存是用来保存引用的,而不是用来保存类对象实际数据的.要为实际数据分配内存,需要使用new运算符. 

原文地址:https://www.cnblogs.com/cdjbolg/p/11756794.html