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

.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.kler.cn/a/537334.html

相关文章:

  • RestTemplate Https 证书访问错误
  • Springboot实现TLS双向认证
  • 使用java代码操作rabbitMQ收发消息
  • DeepSeek关联WPS使用指南与案例解析
  • Class加载流程和运行时区域
  • 新能源产业的质量革命:六西格玛培训如何重塑制造竞争力
  • 【ESP32cam人脸识别开门及服务器端实战源码】
  • 回退 android studio emulator 的版本
  • 51单片机之使用Keil uVision5创建工程以及使用stc-isp进行程序烧录步骤
  • 【测试开发】Python+Django实现接口测试工具
  • docker 网络详解
  • 基于 llama-Factory 动手实践 Llama 全参数 SFT 和 LoRA SFT
  • 【C++】C++对C语言的扩充
  • 台湾精锐APEX减速机在半导体制造设备中的应用案例
  • matlab simulink 三级倒立摆LQR控制
  • 【GoLang】切片的面试知识点
  • 【Python深入浅出】Python3中os模块:开启系统交互的万能钥匙
  • 【Spring Boot】网页五子棋项目中遇到的困难及解决方法
  • 进阶数据结构——链式前向星
  • k8s集群外exporter怎么使用Prometheus监控
  • SQLAlchemy-2.0中模型定义和alembic的数据库迁移工具
  • 大语言模型遇上自动驾驶:AsyncDriver如何巧妙解决推理瓶颈?
  • 某咨询大数据解决方案介绍(32页PPT)
  • springboot+redis实现将树形结构存储到redis
  • python的ruff简单使用
  • 模板分享:线段树(2)