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

vue 实现网站开发更换wordpress字体

vue 实现网站开发,更换wordpress字体,学了网站建设的心得体会,有没有专业做二维码连接网站在简单来说#xff0c;struct是值类型#xff0c;创建一个struct类型的实例被分配在栈上。class是引用类型#xff0c;创建一个class类型实例被分配在托管堆上。但struct和class的区别远不止这么简单。本篇主要包括#xff1a; ■ 概括来讲■ 从赋值的角度体验struct和class的…简单来说struct是值类型创建一个struct类型的实例被分配在栈上。class是引用类型创建一个class类型实例被分配在托管堆上。但struct和class的区别远不止这么简单。本篇主要包括   ■ 概括来讲■ 从赋值的角度体验struct和class的不同■ 从参数传值角度体验struct和class的不同■ 从struct类型的struct类型属性和struct引用类型属性体验struct和class的不同■ 从构造函数体验struct和class的不同■ 从给类型成员赋初值体验struct和class的不同■ 何时使用struct何时使用class?     概括来讲 概括来讲struct和class的不同体现在   ● 类是引用类型struct是值类型● 在托管堆上创建类的实例在栈上创建struct实例● 类实例的赋值赋的是引用地址struct实例的赋值赋的是值● 类作为参数类型传递传递的是引用地址struct作为参数类型传递传递的是值● 类没有默认无参构造函数struct有默认无参构造函数● 类支持继承struct不支持继承● 类偏向于面向对象,用于复杂、大型数据struct偏向于简单值比如小于16字节结构简单● 类的成员很容易赋初值很难给struct类型成员赋初值● 类的实例只能通过new SomeClass()来创建struct类型的实例既可以通过new SomeStruct()来创建也可以通过SomeStruct myStruct;来创建     从赋值的角度体验struct和class的不同   引用类型赋值是把地址赋值给了变量 class Program{static void Main(string[] args){SizeClass sizeClass new SizeClass(){Width 10, Length 10};Console.WriteLine(赋值前width{0},length{1}, sizeClass.Width, sizeClass.Length);var copyOfSizeClass sizeClass;copyOfSizeClass.Length 5;copyOfSizeClass.Width 5;Console.WriteLine(赋值后width{0},length{1},sizeClass.Width, sizeClass.Length);Console.ReadKey();}}public class SizeClass{public int Width { get; set; }public int Length { get; set; }}public struct SizeStruct{public int Width { get; set; }public int Length { get; set; }} 以上当把sizeClass赋值给copyOfSize变量的时候是把sizeClass所指向的地址赋值给了copyOfSize变量2个变量同时指向同一个地址。所以当改变copyOfSizeClass变量的值也相当于改变了sizeClass的值。     struct类型赋值是完全拷贝在栈上多了一个完全一样的变量 class Program{static void Main(string[] args){SizeStruct sizeStruct new SizeStruct(){Length 10, Width 10};Console.WriteLine(赋值前width{0},length{1}, sizeStruct.Width, sizeStruct.Length);var copyOfSizeStruct sizeStruct;copyOfSizeStruct.Length 5;copyOfSizeStruct.Width 5;Console.WriteLine(赋值后width{0},length{1}, sizeStruct.Width, sizeStruct.Length);Console.ReadKey();}} 以上当把sizeStruct赋值给copyOfSizeStruct变量的时候是完全拷贝改变copyOfSizeStruct的值不会影响到sizeStruct。     从参数传值角度体验struct和class的不同   引用类型参数传递的是地址 class Program{static void Main(string[] args){Liststring temp new Liststring(){my,god};temp.ForEach(t Console.Write(t ));Console.ReadKey();}public static void ChangeReferenceType(Liststring list){list new Liststring(){hello, world};}} 结果显示my god 为什么不是hello world→栈上的temp指向托管堆上的一个集合实例→当temp放到ChangeReferenceType(temp)方法中本质是把temp指向的地址赋值给了变量list→在ChangeReferenceType(Liststring list)方法内部又把变量list的指向了另外一个集合实例地址→但temp的指向地址一直没有改变 我们再来改变ChangeReferenceType(Liststring list)内部实现方式其它不变。 class Program{static void Main(string[] args){Liststring temp new Liststring(){my,god}; ChangeReferenceType(temp);temp.ForEach(t Console.Write(t ));Console.ReadKey();}public static void ChangeReferenceType(Liststring list){list.Clear();list.Add(hello);list.Add(world);}} 结果显示hello world 为什么不是my god  →栈上的temp指向托管堆上的一个集合实例→当temp放到ChangeReferenceType(temp)方法中本质是把temp指向的地址赋值给了变量list→在ChangeReferenceType(Liststring list)方法内部把temp和list共同指向的实例清空又添加hello和world2个元素→由于list和temp指向的实例是一样的所以改变list指向的实例就等同于改变temp指向的实例 以上很好地说明了引用类型参数传递的是地址。     值类型struct参数传递的是值 class Program{static void Main(string[] args){Size s new Size(){Length 10, Width 10};ChangeStructType(s);Console.Write(Length{0},Width{1}, s.Length,s.Width);Console.ReadKey();}public static void ChangeStructType(Size size){size.Length 0;size.Width 0;}}public struct Size{public int Length { get; set; }public int Width { get; set; }}   为什么Length和Width不是0呢→在栈上变量size→当通过ChangeStructType(size)把s变量赋值给ChangeStructType(Size size)中的size变量其本质是在栈上又创建了一个变量sizesize的值和s是完全一样的→在ChangeStructType(Size size)内部改变size的值与变量s毫无关系     从struct类型的struct类型属性和struct引用类型属性体验struct和class的不同   假设有一个struct它有struct类型的属性 以下 struct类型Room有struct类型的属性TableSize和TvSize我们如何通过Room实例来修改其struct类型的属性值呢 class Program{static void Main(string[] args){Room r new Room(){TableSize new Size(){Length 100, Width 80},TvSize new Size(){Length 10, Width 8}};r.TableSize.Length 0;Console.WriteLine(table目前的尺寸是length{0},width{1}, r.TableSize.Length, r.TableSize.Width);Console.ReadKey();}}public struct Size{public int Length { get; set; }public int Width { get; set; }}public struct Room{public Size TableSize { get; set; }public Size TvSize { get; set; }} 以上r.TableSize.Length 0此处会报错不能修改r.TableSize的值因为不是变量。的确r.TableSize只是Size的一份拷贝而且也没有赋值给其它变量所以r.TableSize是临时的会被自动回收对其赋值也是没有意义的。   如果要修改r.TableSize只需把r.TableSize.Length 0改成如下r.TableSize new Size(){Length 0, Width 0};   可见改变struct类型的struct类型属性的某个属性是行不通的因为像以上r.TableSize只是一份拷贝是临时的会被自动回收的。要改变struct类型的struct类型属性就需要像上面一样给r.TableSize赋上一个完整的Size实例。     假设有一个struct它有引用类型的属性呢 以下struct类型的Room有引用类型属性TableSize和TvSize,如何通过Room实例来修改其引用类型的属性值呢并且我们在类Size中定义了一个事件当给Size的属性赋值时就触发事件提示size类的属性值发生了改变。 class Program{static void Main(string[] args){var oneSize new Size() {Length 10, Width 10};var twoSize oneSize;oneSize.Changed (s, e) Console.Write(Size发生了改变~~);oneSize.Length 0;Console.ReadKey();}}public class Size{private int _length;private int _width;public event System.EventHandler Changed;public int Length{get { return _length; }set{_length value;OnChanged();}}public int Width{get { return _width; }set { _width value; OnChanged(); }}private void OnChanged(){if (Changed ! null){Changed(this, new EventArgs());}}}public struct Room{public Size TableSize { get; set; }public Size TvSize { get; set; }} 运行显示Size发生了改变~~ 对oneSize.Length的修改实际上修改的是oneSize.Length指向托管堆上的实例。     从构造函数体验struct和class的不同   struct类型包含隐式的默认无参构造函数 class Program{static void Main(string[] args){var size new SizeStruct();Console.WriteLine(length{0},width{1}, size.Length, size.Width);Console.ReadKey();}}public struct SizeStruct{public int Length { get; set; }public int Width { get; set; }}   为什么我们没有给SizeStruct定义无参构造函数而没有报错--因为struct类型有一个隐式的无参构造函数并且给所有的成员赋上默认值,int类型属性成员的默认值是0。     类不包含隐式无参构造函数 class Program{static void Main(string[] args){var size new SizeClass();Console.WriteLine(length{0},width{1}, size.Length, size.Width);Console.ReadKey();}}public class SizeClass{public int Length { get; set; }public int Width { get; set; }public SizeClass(int length, int width){Length length;Width Width;}} 运行报错SizeClass不包含0个参数的构造函数     从给类型成员赋初值体验struct和class的不同 如果直接给字段赋初值。 public struct SizeStruct{public int _length 10;} 运行报错结构中不能有实例字段初始值设定项   如果通过构造函数给字段赋初值。 public struct SizeStruct{public int _length;public SizeStruct(){_length 10;}} 运行报错结构中不能包含显式无参数构造函数   可见给struct类型成员赋初值是不太容易的而给class成员赋初值,no problem。     何时使用struct何时使用class? 在多数情况下推荐使用class类因为无论是类的赋值、作为参数类型传递还是返回类的实例实际拷贝的是托管堆上引用地址也就大概4个字节这非常有助于性能的提升。   而作为struct类型无论是赋值作为参数类型传递还是返回struct类型实例是完全拷贝会占用栈上的空间。根据Microsofts Value Type Recommendations在如下情况下推荐使用struct ● 小于16个字节● 偏向于值是简单数据而不是偏向于面向对象● 希望值不可变   参考资料C# Fundamentals: The Differences Between Struct and ClassDifference between class and struct in C# .NetDifference Between Class and Structure转载于:https://www.cnblogs.com/darrenji/p/3866784.html
http://www.yutouwan.com/news/219683/

相关文章:

  • 网站要怎么样做排名才上得去wordpress主题优化
  • 免费营销网站制作企业网站建设技巧
  • 网站建设小说毕业设计提升网站转化率
  • 茌平网站建设宣传册排版设计与制作
  • 网站与网页的区别.app拉新推广平台渠道
  • 宁波网站关键词排名推广网络推广方案包括哪些内容
  • 沈阳网站推广优化公司哪家好杭州工程网站建设
  • wdcp网站备份问题pacdora 设计网
  • 网站建设专用图形库网站后台用什么程序做
  • 要建立网站潮州市建设局网站
  • 网站流量查询英文网站seo方案
  • 汕头房产网站建设响应式营销型网站建设
  • 常见的网站建设类型都有哪些方面app搜索优化
  • 国家建设部查询网站网络服务机构的域名
  • 四川定制网站建设网络运维工程师有前途吗
  • 用cms做单页网站怎么做企业名录搜索软件有哪些
  • 北京征集网站建设网站建设推广销售好做吗
  • 最专业的车网站建设网站预算怎么做
  • 网站交易平台wordpress慢数据库
  • 网站开发还找到工作吗安徽省网站建设公司
  • 网站开发需要考什么证书网站个人备案修改成企业备案
  • 汉中网站seo建筑效果图用什么软件制作
  • 模板网站制作多少钱企业网站代码
  • 网站评论区怎么做做技术支持的网站有
  • 中国设计网站推荐建设网站的法律声明
  • 怎么做网站建设作业宝贝我想跟你做网站
  • 代理记账公司哪家好seo教程技术资源
  • 如果自己制作网站下载建设银行官方网站下载
  • 无锡网站建设mkdns网站制作交流论坛
  • 专业网站设计网络服务律师行业网站建设