c# 结构体和一些基础知识
2022/7/10 14:24:20
本文主要是介绍c# 结构体和一些基础知识,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
c# 里面的结构体: 1. 是值类型的 struct Books { public string title; }; 2. 使用 Books Book1; Book1.title = "C Programming"; 3. 里面可以写 字段 属性 方法 4. 默认自带空构造函数,而且自己不能再写。 但是自己可以写其他的构造函数,必须对每个字段赋初始值。然后字段不能写初始值 5 不支持继承 6 保存在栈上,性能好。 默认(LayoutKind.Sequential)情况下,CLR对struct的Layout的处理方法与C/C++中默认的处理方式相同,即按照结构中占用空间最大的成员进行对齐(Align); 使用LayoutKind.Explicit的情况下,CLR不对结构体进行任何内存对齐(Align),而且我们要小心就是FieldOffset; 使用LayoutKind.Auto的情况下,CLR会对结构体中的字段顺序进行调整,使实例占有尽可能少的内存,并进行4byte的内存对齐(Align)。 2. 内存分配问题。 如果不显示的设置内存对齐方式(通过StructLayout.Pack属性决定), C#默认是以4个字节(byte)为单位,会出现“多分配”内存的情况。 例如:- Class Example
- {
- public byte b1;
- public char c2;
- public int i3;
- }
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="MyFirstMath"
publicKeyToken="057d97a5945de510"
culture="neutral" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
在assemblyIdentity下面加上这句话:
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
如果想更换加载这个dll的位置,加这句话
<codeBase version="2.0.0.0" href="../../resources/MyFirstMath.dll"/>
这篇关于c# 结构体和一些基础知识的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#