31
2020
03

追加一个双重锁定的单例模式

using System;using System.Collections.Generic;/// <summary>/// 适用于在多线程的情况下保证只有一个实例化对象的情况,例如银行的操作系统/// </summary>namespace DoubleLockInstance{ //---------------------------------- // 双重锁定单例 public sealed class Singleton 
31
2020
03

现有一个整数number,请写一个方法判断这个整数是否是2的N次方

答:private static bool GetFlag(int num)        {        if (num < 1) return false;        return (num & num - 1) == 0;     }
31
2020
03

请写出C#中的单例模式

答:  public class Single    {        private static Single instance;        private Single (){}        public static Single GetInstance ()        {  &n
31
2020
03

类的私有成员会被子类继承吗?请说明原因。

答:会被子类继承,但是不能被访问。所以看上去是不能被继承的,实际上确实被继承了。
31
2020
03

接口和抽象类的区别是什么?

答:接口中所有的方法都不能有实现,并且不能指定方法的修饰符    抽象类中可以有方法的实现,也可以指定方法的访问修饰符    第一个继承接口的类必须实现接口里的所有方法    而抽象类中抽象方法的实现是由第一个非抽象的派生类来实现
31
2020
03

什么时候必须声明一个类为抽象类?

答:(1)当这个类中有抽象方法的时候,必须声明类为抽象类       (2)该类没有完全实现父类的抽象方法时,也需要声明为抽象类
31
2020
03

const和readonly有什么区别?

答:const关键字用来声明编译时的常量      readonly用来声明运行时的常量
31
2020
03

请问能设置类A可被继承,但类A中的某个方法不能被重写吗?

答:能,将类A的修饰符标记为public、标记类A中的不允许重写的方法为sealedsealed关键字不仅可以限制类,也可以限制方法。
31
2020
03

请简略描述重载和重写的区别?

答:方法重载提供了一个相同的方法但是方法签名的参数不同的调用的实现。      重写提供了子类中改变父类方法行为的实现。
31
2020
03

我们都知道一个类可以有多个构造函数,并且C#会在我们创建类的时候默认的提供一个无参的构造函数,当我实现了另外一个有参数的构造函数的时候,我还能调用无参数的构造函数吗?请说明原因。

答:不能,因为一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要自己手动写入一个无参数的构造函数。