随笔分类 - .NET
摘要:这是遇到的面试题,请问i=?;j=?,为什么? string str1 = "abcd测试一下"; var strToBytes1 = System.Text.Encoding.UTF8.GetBytes(str1); var i = strToBytes1.Length; var j = str1
阅读全文
摘要:一.注册的几种类型: services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();//单利模式,整个应用程序生命周期以内只创建一个实例 services.Add(new ServiceDescriptor(typeof(
阅读全文
摘要:ActionResult是控制器方法执行后返回的结果类型,控制器方法可以返回一个直接或间接从ActionResult抽象类继承的类型,如果返回的是非ActionResult类型,控制器将会将结果转换为一个ContentResult类型。默认的ControllerActionInvoker调用Acti
阅读全文
摘要:[Serializable] 这个叫Attribute写在类、属性、字段的上面,比如 [Serializable] class A { ... }
阅读全文
摘要:在ADO.NET中有五大对象 对象: Connection:主要用来开启程序和数据库之间的连接,没有利用Connection对象连接数据库,是无法从数据库中取得数据的。Close()和Dispose()的区别就是Close以后还可以Open,但是Dispose是释放了连接,要操作数据库就要重新连接数
阅读全文
摘要:一、大白话解说,半分钟就懂,用生活中的例子来说明: 小饭店原来只有一个厨师,切菜洗菜备料炒菜全干。 后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,两个厨师的关系是集群。 为了让厨师专心炒菜,把菜做到极致,再请了个配菜师负责切菜,备菜,备料 ... 厨师和配菜师的关系是分布
阅读全文
摘要:operator 只要是运算符都能重载 operator 关键字的主要作用是用来重载运算符的,还可以用于类或结构中类型的自定义转换。 下面看个例子 class Feige { //定义两个全局变量 int a, b; //声明带两个参数的构造函数 public Feige(int a, int b)
阅读全文
摘要:四个朋友住在一个小城镇里。他们的名字叫库克、米勒、史密斯和卡特。这四个人中一个是警察,一个是木匠,一个是农民,一个是医生。 一天,库克的亲生儿子摔断了腿,库克带他去找医生。医生有个妹妹是史密斯的妻子。农民没有结过婚,他养着许多母鸡。米勒经常去农民家里买鸡蛋。警察每天都能见到史密斯,因为他们是邻居。
阅读全文
摘要:1.维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么? 答:尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低
阅读全文
摘要:面试题:C#声明一个100大小的数组 随机生成1-100之间不重复的数下面是C#的实现方式,编译测试通过 public static void InsertRandomArray() { int[] intArray = new int[100]; ArrayList newArray = new
阅读全文
摘要:前言:有些程序运行的时候,可能调用外部的dll,用户使用时可能会不小心丢失这些dll,导致程序无法正常运行,因此可以考虑将这些dll嵌入到资源中,启动时自动释放。对于托管的dll,我们可以用打包软件合成一个exe(例如利用Imerge),但是对于一些用C++等写的非托管dll,就比较麻烦。在这种情况
阅读全文
摘要:using System; using System.Collections.Generic; using System.Data; using System.Reflection; namespace BT.Preservation.Models { public static class Ext
阅读全文
摘要:由于项目需要,要为客户提供一个定期发送邮件的程序。本来原来自己还写过,但新写的程序一晚上也没通过测试,总是提示"不允许使用邮箱名称。服务器响应为..." 经过在网上搜索查找解决办法,似乎解决办法都是一个,就是把smtp.UseDefaultCredentials = true;写到smtp.Cred
阅读全文
摘要:在 C# 中,new 关键字可用作运算符、修饰符或约束。 1)new 运算符:用于创建对象和调用构造函数。 2)new 修饰符:在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员。 3)new 约束:用于在泛型声明中约束可能用作类型参数的参数的类型 public class Program:
阅读全文
摘要:在使用EF框架时,我们通常都是通过调用SaveChanges方法把增加/修改/删除的数据提交到数据库,但是上下文是如何知道实体对象是增加、修改还是删除呢?答案是通过EntityState的枚举值来判断的。也就是说在操作数据库时,EF会根据EntityState这个枚举检测到实体的状态,然后执行相应的
阅读全文
摘要:队列【Queue】 //队列:先进先出 /* *增加元素到队列结尾处 *移除队列开始处 */ Queue queue=new Queue(); queue.Enqueue(Object); queue.Dequeue(); 堆栈【stack】 //堆栈:先进后出 /*增加元素到堆栈顶部 *移除堆栈顶
阅读全文
摘要:String和StringBuffer的区别 String: 1.是对象不是原始类型。2.为不可变对象,一旦被创建,就不能修改它的值。3.对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去。4.String是final类,即不能被继承。 StringBuffer: 1
阅读全文
摘要:1.什么是线程? 进程作为操作系统执行程序的基本单位,拥有应用程序的资源,进程包含线程,进程的资源被线程共享,线程不拥有资源。 2.前台线程和后台线程的区别? 程序关闭时,后台线程直接关闭,但前台线程会执行完后关闭。 通过Thread类新建线程默认为前台线程。其他方式创建的都是后台线程。 多线程的几
阅读全文
摘要:注入法: 从理论上说,认证网页中会有型如: select * from admin where username='XXX' and password='YYY' 的语句,若在正式运行此句之前,如果没有进行必要的字符过滤,则很容易实施SQL注入。 如在用户名文本框内输入:abc’ or 1=1--
阅读全文
摘要:SQL注入是一种代码注入技术,用于攻击数据驱动的应用,恶意的SQL语句被插入到执行的实体字段中(例如,为了转储数据库内容给攻击者) SQL注入,大家都不陌生,是一种常见的攻击方式。攻击者在界面的表单信息或URL上输入一些奇怪的SQL片段(例如“or ‘1’=’1’”这样的语句),有可能入侵参数检验不
阅读全文