.net的一些知识点6

devtools/2025/2/11 23:21:57/

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.ppmy.cn/devtools/158051.html

相关文章

Visual Studio Code (VSCode) 的基本设置指南,帮助你优化开发环境

以下是 Visual Studio Code (VSCode) 的基本设置指南&#xff0c;帮助你优化开发环境&#xff1a; 1. 安装与基础配置 下载安装 访问 VSCode 官网 下载对应系统的版本&#xff0c;按提示安装。 打开设置界面 快捷键&#xff1a;Ctrl ,&#xff08;Windows/Linux&#xff09;或…

教程 | Hadoop极简部署指南(Docker-Compose版)

&#x1f4e6; 前置环境准备 1. 安装Docker 安装依赖工具 sudo yum -y install yum-utils配置阿里云镜像源&#xff08;国内加速&#xff09; sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装社区版Docker sudo yu…

面试准备-排序部分:快速排序、堆排序

快速排序 快速排序是一种基于**分治思想&#xff08;Divide and Conquer&#xff09;**的排序算法。其核心思想是&#xff1a; 选择一个基准元素&#xff08;pivot&#xff09;&#xff0c;通常是数组中的某个元素&#xff08;如最左/最右元素、中间元素或随机选择&#xff0…

java-list源码分析

List底层&#xff1a; List 是 Java 中的一个接口&#xff0c;具体的底层实现取决于它的实现类。最常见的 List 实现类是 ArrayList 和 LinkedList&#xff0c;它们的底层原理完全不同。下面我们分别分析这两种实现类的底层原理。 ArryList原理&#xff1a; ArrayList 是基于…

如何通过Facebook批量操作提升营销效果

随着社交媒体的发展&#xff0c;Facebook已成为全球最受欢迎的营销平台之一。凭借其庞大的用户基数和精准的广告定向功能&#xff0c;Facebook为品牌提供了广泛的营销机会。然而&#xff0c;要在这个竞争激烈的环境中脱颖而出&#xff0c;营销人员需要利用有效的工具和策略&…

Kotlin 2.1.0 入门教程(十一)for、while、return、break、continue

for 循环 for 循环会遍历任何提供迭代器的对象。 for (item in collection) print(item)for (int: Int in ints) {println(int) }for 循环会遍历任何提供迭代器的对象&#xff0c;这意味着该对象必须满足以下条件&#xff1a; 具有一个成员函数或扩展函数 iterator()&#xf…

Excel 融合 deepseek

效果展示 代码实现 Function QhBaiDuYunAIReq(question, _Optional Authorization "Bearer ", _Optional Qhurl "https://qianfan.baidubce.com/v2/chat/completions")Dim XMLHTTP As ObjectDim url As Stringurl Qhurl 这里替换为你实际的URLDim postD…

Java入门 - 循环结构进阶

第1关&#xff1a;for循环的进阶使用-嵌套循环&#xff08;1&#xff09; package step1;public class ForPractice1 {public static void test() {/*****start*****/for(int i 1; i < 10; i){for(int j 1; j < 9; j)System.out.print("*");System.out.prin…