邯郸建设信息网站,wordpress 黄蓝 现代企业,网站建立的重要性,如何在电脑上做网站一、局部类型 在C#当中有这样一个关键字partial 用来声明类#xff0c;结构#xff0c;接口分为多个部分来声明。使用场景可以一部分类中写实例方法#xff0c;一部分写属性#xff0c;我在实际工作测试中就是将属性与实际方法是分开的。相互之间的成员互相通用。
举个例子…一、局部类型 在C#当中有这样一个关键字partial 用来声明类结构接口分为多个部分来声明。使用场景可以一部分类中写实例方法一部分写属性我在实际工作测试中就是将属性与实际方法是分开的。相互之间的成员互相通用。
举个例子
public partial class S
{public int MyProperty { get; set; }
}
public partial class S
{public void Console(){}
} 示例解释 定义了一个局部类型这里是定义的部分类其中当前的S这个类中具有一个属性一个方法 局部方法 和上述定义的局部类一样可以定义局部方法局部方法可以分多个部分一部分只具有方法名称不建议实际方法体另一部分可以选择是否实现如果没有实现如果有调用当前没有方法体的局部方法那么编译器会自动删除当前所有调用的引用不影响程序性能。
举个例子
public partial class S
{public partial void O( );}
public partial class S
{public partial void O( ){}
} 示例解释当前定义两个部分方法其中部分方法体在下面的这个部分类中。 二、静态类 静态类在我们开发实例当中我们经常把静态类用为一个工具类是最常见的一个用法。静态类中不能有实例成员如不能有非静态的属性非静态的方法也不能具有实例构造函数
举个例子
public static class DBHelper
{public static DataTable Find(string sql)//查询{throw new NotImplementedException();}
} 示例解释 定义了一个数据库帮助类没有实现具体逻辑 三、属性的访问分离 用途只想在当前类内部对属性进行访问get块以及set块不想外部访问get块或者set块,保护属性的可访问性权限
举个例子只读外部无法访问私有的Set块
public class DBHelper
{private int myVar;public int MyProperty{get { return myVar; }private set { myVar value; }}
} 提示可以将Set或Get设置为受保护的、内部的、受保护的内部的、私有的(protected 、internal、protected internal、private ) 四、命名空间别名
见文章高级C#技术一-CSDN博客
五、编译指令 我们在编译C#代码的时候我们通常会收到编译器的警告。通常这种警告提示是类似声明了某个变量但没有使用到当前变量会警告、没有给当前变量赋初始值也就是我们所说的未初始化也会警告。等等。我们可以使用如下代码来进行屏蔽表示警告的代码
举个例子
我们需要屏蔽如下警告代码CS8618 声明方式
#pragma warning disable CS8618public S3(){Age MyProperty;}public ICommand command { get; private set; }public ICommand command2 { get; private set; }public ICommand command22 { get; private set; }
#pragma warning restore CS8618 示例解释 当前被包起来的区域将不会抛出警告代码为CS8618的警告内容如果删除 #pragma warning restore CS8618则代表#pragma warning disable CS8618只下的代码全部取消CS8618的警告。 CS的含义 C# 的编译器修改了警告标识的规则如C#的编译器的警告的标准的规则则是警告代码前缀是CS开头 六、固定大小缓存区 固定大小缓存区这项特性只能用于非安全的代码并且只能用于结构体内部。固定大小缓存区允许你直接访问托管堆栈上的内存这对于性能敏感的代码特别有用。 非安全代码指的是固定大小缓存区只能在不安全unsafe代码中使用。这是因为固定大小缓存区允许你直接操作内存 。
举个例子
unsafe class Program
{ static unsafe void Main(string[] args) { byte[] buffer new byte[100]; fixed (byte* pBuffer buffer) { // 在这里pBuffer指向固定大小的缓冲区 // 你可以使用指针pBuffer进行直接内存操作 } }
} 示例解释 为什么称呼它为非安全代码示例因为当前 使用fixed关键字将其固定在内存中。通过指针pBuffer我们可以直接访问和操作这个固定大小的缓冲区。 因为它直接操作内存。在编写这样的代码时必须非常小心以避免出现内存泄漏、悬挂指针等问题。 提示如果无法编译则需要 在 ‘解决方案资源管理器’ - 右击 - 选择 ‘属性’ - 选择‘生成’ - 选择 ‘允许不安全代码 后就可以通过编译了。 只能在结构体内部使用固定大小缓存区只能定义在结构体struct内部。这是因为结构体在C#中是值类型其生命周期与栈帧一致因此能够确保在固定大小缓冲区被释放时不会发生悬挂指针dangling pointers。与之相对类class是引用类型其生命周期由垃圾回收器管理因此不能保证在释放内存后不会发生悬挂指针。
七、InternalsVisiblTo 此项技术我觉得非本人.NET 中的 InternalsVisibleTo - 知乎 (zhihu.com) 注意这个博主可能比我理解更好我这就不介绍了