当前位置: 首页 > news >正文

.net的一些知识点6

1.写个Lazy<T>的单例模式

 public class SingleInstance{private static readonly Lazy<SingleInstance> instance = new Lazy<SingleInstance>(() => new SingleInstance());private SingleInstance(){}public static SingleInstance Instace => instance.Value;public void Test(){Console.WriteLine("Test");}}

2.单例模式会用在什么地方

数据库连接

日志

线程池管理

3.数据库连接释放如何进行

SqlConnection实例化的对象con

con.Close();

con.Dispose();

3.发布-订阅模式

发布的类定义一个delegate,定义一个event,两者访问权限与返回类型必须一致

发布的类实例化后

调用订阅者的方法,订阅者的方法的访问权限以及返回类型必须和代理一致

  PublishDemo publishDemo = new PublishDemo();publishDemo.MyEvent += new SubscriberDemo().Write;publishDemo.Test("aaa");

4.发布类方法调用的注意点:

internal class PublishDemo
{public delegate void MyDelegate(string str);public event MyDelegate MyEvent;public void Test(string s){//MyEvent(s);如果没有订阅者,会报错MyEvent?.Invoke(s);}}

5.如何读取一个类的属性

a.类实例化一个对象

b.对象.GetType().GetProperties();//Properties,因为属性几乎不会只有一个

c.得到当前值,然后遍历一下,即可获取属性名称

   MyEntity myEntity = new MyEntity();myEntity.Id = 1;myEntity.Name = "ddfffsdfsdfs";PropertyInfo[] items = myEntity.GetType().GetProperties();foreach (var item in items){Console.WriteLine(item.Name + ":" + item.PropertyType + ":"+ item.GetValue(myEntity));//item.GetValue(myEntity);用于取属性值}

6.定义一个结构体

//和类很像

struct Book{

public string Name;

}

struct,class,枚举,接口不能再main中定义

7.如何防止sql注入

a.sql参数化

b.用存储过程

c.不用同态sql

d.使用orm框架,比如ef框架

e.前端要有验证

f.数据库用户权限要慎重

8.使用存储过程的有点有哪些

a.防止sql注入

b.执行速度快

c.减少流量

9.如何交换俩个变量的值

a.用临时变量盛一下

b.用元组

c.用计算交换

10.说一个可以查看.net运行环境的命令

dotnet --info


http://www.mrgr.cn/news/89863.html

相关文章:

  • 7.PPT:“中国梦”学习实践活动【20】
  • Deepseek本地部署指南:在linux服务器部署,在mac远程web-ui访问
  • @emotion/styled / styled-components创建带有样式的 React 组件
  • idea中git的简单使用
  • labelme_json_to_dataset ValueError: path is on mount ‘D:‘,start on C
  • waf防火墙拦截界面HTML源码
  • C++效率掌握之STL库:string函数全解
  • 【Unity2D 2022:UI】创建滚动视图
  • DeepSeek:探索人工智能的新边界
  • 【csp/信奥赛C++语法学习如何入门?】
  • 【DeepSeek论文精读】2. DeepSeek LLM:以长期主义扩展开源语言模型
  • 循环神经网络
  • 【2】Cisco SD-WAN 组件介绍
  • docker /var/lib/docker/overlay2目录把磁盘空间占满问题
  • 排序算法--快速排序
  • Linux高并发服务器开发 第十六天(execlp/execl 进程回收/孤儿进程/僵尸进程 wait/waitpid回收 进程间的通信)
  • VIVADO生成DCP和EDF指南
  • 【漫话机器学习系列】084.偏差和方差的权衡(Bias-Variance Tradeoff)
  • C++开发(软件开发)常见面试题
  • Mysql知识梳理(数据库的锁梳理,Mysql优化)
  • Android13-系统服务大管家-ServiceManager进程-启动篇
  • 【从零开始系列】DeepSeek-R1:(本地部署使用)思维链推理大模型,开源的神!——Windows / Linux本地环境测试 + vLLM / SGLang远程部署服务
  • C# winforms 使用菜单和右键菜单
  • TaskBuilder低代码开发项目实战:项目简介
  • 2、k8s的cni网络插件和基本操作命令
  • 使用git commit时‘“node“‘ 不是内部或外部命令,也不是可运行的程序