知识梳理

一c#基础
1.静态代码块,静态属性静态方法构造方法加载顺序,调用顺序。
答案(待验证):加载顺序:静态属性–静态类–构造方法。调用顺序:静态代码块–剩下的看实际代码调用顺序。
解释:静态属性,静态方法,静态代码块会程序启动时加载,其中静态代码块会被执行且只会执行这一次。

2.序列化的应用场景?
待续

3.值类型种类
byte short int float double bool struct enum decimal char

4.值类型和引用类型区别
值类型:赋值就是一个新内存地址,互相不受影响
引用:赋值指向同一地址,相互影响。

5.var object dynamic区别
a. var是语法不是类型,其它两个是类型,只能在方法中使用
b.var 在赋值时确定类型(编译阶段,隐式声明)且必须赋值,不能当参数类型
object是所有类基类,只能用自己的方法
dynamic运行时自动确定类型(需要损失性能),函数如果是确定类型,不是使用dynamic类型传值,可以用对象本身的方法

6.private protected internal public区别
private:类内部访问。
protected:直接或间接继承的子类访问
internal:一个程序集assembly中访问
public:所有类都可访问

7.关于泛型
作用:解耦合,让代码更通用
约束,a 值约束(struct) b引用约束(class) c无参构造器约束(new()),d基类或接口约束
使用:public class a<T1,T2,T3,T4> where T1:struct
{
public void method(){}
}
约束:new约束写在后边,值约束不能与引用约束一起用,基类约束只能有一个,接口可以有多个。

8.反射

Assembly assembly = Assembly.LoadFrom(dllfileName);
Type type =assembly.GetType(fullClassName)
A a =Activator.CreateInstance(type);
MethodInfo method =type.GetMethod(MethodName);
Method.Invoke(new object[]{123,"ewq"});
//私有
A a =Activator.CreateInstance(type,true);
MethodInfo method =type.GetMethod(MethodName,BindingFlag.Instance|BindingFlag.NonPublic);
//泛型
Type type =assembly.GetType(fullClassName^2)
Type typeMake=type.MakeGenericType(new Type[]{Typeof(string),Typeof(int)});
A a =Activator.CreateInstance(typeMake);

MethodInfo method =type.GetMethod(MethodName);
MethodInfo methodMake = method.MakeGenericMethod(new Type[]{Typeof(string),Typeof(int)});

methodMake.Invoke(new object[]{"tew",123});

//属性设置
PropertiesInfo[] props =type.GetProperties();
if(props[0].Name=="propNane")
props[0].SetValue (className,"value")

9.文件和文件流
a: memoryStream和FileStream,
memmoryStream:是在内存中开辟一片空间对流进行操作.
FileStream:可以对系统的文件进行操作

10.String类可以继承吗?
不可以,因为String类是以sealed关键字密封的,不可
在这里插入图片描述
Sealed关键字修饰的类为密封类,不可继承,修饰的方法为密封方法,不可重写(类必须要先继承一个类或接口,此类/类中才能用Sealed关键字)

11.构造器可以被继承吗?
不能,也不可被重写,如果能继承(Student:Peason),子类不要构造器,就使用父类构造器,就可以生成父类对象,但是你是就变成了 Student s = new Peason(),就是子类引用指向父类实例,C#正常是无法支持这种转换的

12.结构体struct和类class的区别
struct是值类型,赋值是完全拷贝一份
class是引用类型,赋值也都是同一份

二sql基础
1.sql优化?
答案:a,加索引,b小表驱动大表(大表访问次数为小表的条数),分库分表,看执行计划是否用到索引等

2.索引,复合索引要用在哪里等
答案,只要用到索引的字段,索引一般都是起作用,不只限where后,复合索引要按建索引的顺序调用

3.每种商品类型的平均价格。
答案select sum(price)/count(*) ,a.type from a group by a.tpye(居然败在了这道题下,以前一直以为以哪个字段分组就只能查那个字段,这是错的,是分组后一组只能查出一行数据,如果你查出多行就是错的,因此分组后可以查分组字段数据和聚合函数)

三.net基础
1.webform和mvc区别?
待续
2…net core和.net framework区别
a.跨平台
b.core可以随意使用中间件,framework至少必须使用自带管道中的中间件
c.core自带IOC容器

3.httpclient
并发使用时需要设置最大连接数,不然随着连接数增多,又没有及时断掉,服务器连接被占满,新的连接可能就会被切断,报connection fail相关的错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值