当前位置:首页 > 日记 > 正文

了解C#字符串类型

了解C#字符串类型
客观的

这篇文章的目的是要揭示一些与DOTNET和C #相关的常见和不常见的问题,在这些问题中,我的第一篇文章是字符串数据类型,字符串数据类型是引用类型,但许多开发商可能并不完全理解它的行为与其他引用类型的比较。

问题

对于一个公共引用类型,当对象别名的值发生变化时,这个变化也显示在一个真实对象中,反之亦然。

解释

引用类型

假设我们有一个类MyType,其中有一个属性名;我们也有一个类apptype,它提供的主要()运行程序的方法。

现在,让我们来看一下代码:
使用系统;

类MyType

{

专用字符串名;

公共字符串名称

{



{

名称=值;

}

得到

{

返回的名称;

}

}

}

类apptype

{

公共静态空主()

{

MyType obj1,obj2;

console.writeline(*****参考学习哲学***** );

obj2 =新的MyType();

obj2。名称=萨迪克;

obj1,obj2;

console.writeline(价值= { 0 } obj1和obj2 = { 1 }

以此名称=艾哈迈德;

console.writeline(价值= { 0 } obj1和obj2 = { 1 }

}

}
编译和运行此代码时,将获得以下输出:

学习参考哲学
对萨迪克和obj2 obj1 = =萨迪克值
对艾哈迈德和obj2 obj1 = =艾哈迈德值

这表明obj1是obj2的别名,换句话说,两obj1和obj2指向相同的内存空间。

值类型

它与上面的代码类似。不像这一次,我们定义了MyType作为一个阶级,和其他部分都是相同的。让我们先看看代码:

使用系统;

结构很重要

{

专用字符串名;

公共字符串名称

{



{

名称=值;

}

得到

{

返回的名称;

}

}

}

类apptype

{

公共静态空主()

{

MyType obj1,obj2;

console.writeline(*****参考学习哲学***** );

obj2 =新的MyType();

obj2。名称=萨迪克;

obj1,obj2;

console.writeline(价值= { 0 } obj1和obj2 = { 1 }

以此名称=艾哈迈德;

console.writeline(价值= { 0 } obj1和obj2 = { 1 }

}

}
让我们看看上面运行的代码的输出:

学习参考哲学
对萨迪克和obj2 obj1 = =萨迪克值
对艾哈迈德和obj2 obj1 = =萨迪克值

This shows that obj1 is not the same as obj2, that is, they point to different memory spaces.

引用类型或值类型
现在,让我们来看一下直接使用字符串类型的情况:

使用系统;

类apptype

{

公共静态空主()

{

字符串obj1,obj2;

console.writeline(*****参考学习哲学***** );

不需要它

/ / obj2 =新的MyType();

Obj2= Sadiq;

obj1,obj2;

慰问.WriteLine(价值= { 0 } obj1和obj2 = { 1 }

obj1 = 艾哈迈德;

console.writeline(价值= { 0 } obj1和obj2 = { 1 }

}

}
运行此代码时,您将得到:

学习参考哲学
对萨迪克和obj2 obj1 = =萨迪克值
对艾哈迈德和obj2 obj1 = =萨迪克值

这表明obj1不是别名obj2,即obj1和obj2指向不同的存储空间。

真奇怪!的确!我们都知道字符串类型是动态增长的,这表明它必须在堆上分配内存。为什么它显示了与值类型相同的属性

原因
关键在于以下两行代码:

字符串obj1;
obj1 =价值的力量分配内存;

第一行代码只定义了一个对象,它不创建一个对象;第二行代码将真正创建一个对象:

obj =新的字符串(价值的力量分配内存);。

总结

所以,当你初始化一个值的字符串对象或给它一个新的字符串,你会在内存中创建一个新的对象。现在,我们应该明白,在第三例obj1不是obj2的别名,他们指出,不同的存储空间。

相关文章

春运成都火车票试行实名制

春运成都火车票试行实名制

成都,实名制,春运,火车票,电脑软件,春运成都火车票试行实名制: 20种身份证,如两代身份证,可以实名购买,成都铁路分局11站为试点。 各界人士呼吁多年的火车票是春节期间实现实名制。昨日,记者了解到,今年春节期间,铁路部门将在广州和成都买火车票…

2013首金金牛提名:豆读

2013首金金牛提名:豆读

电脑软件,最佳应用银牛提名产品:豆瓣阅读 在一个应用程序的评价,我们先来看看用户是如何评价它,让安静的气氛和好的食材,烹饪,一贯的风格,简单,清新,请保持同样的水平;hellip;hellip;不像豆瓣一直低调沉稳的风格,近两年的探索是不是豆瓣阅读安静;。 这…

如何修改最大数量的--如何MOD最近

如何修改最大数量的--如何MOD最近

文档,数量,修改,启动菜单,电脑软件,Windows 7系统的开始菜单将显示最近打开的十个最近使用的应用程序。如果您想显示最近打开的程序,可以使用以下设置: 点击{开始} { }在搜索程序和文件中输入gpedit.msc打开组策略,如上所述,扩展用户配置- { }…

让Windows7窗口颜色自动变换,使Wind

让Windows7窗口颜色自动变换,使Wind

变换,颜色,窗口,天气,电脑软件,Windows 7具有定时和壁纸替换功能,使桌面背景更加丰富多彩。偶尔,萧边发现了一个小工具,可以让Windows 7窗口边框的颜色自动变换,aeroweather。这个小工具可以自动将Windows 7的窗口颜色根据你的气象条件,这不仅丰…

默认的音频输入和输出,win7下套QQ默

默认的音频输入和输出,win7下套QQ默

默认,输出,输入,声音,音频输入,首先,在控制面板下打开声音属性设置窗口。分别设置播放和录制的默认输出和输入。 设置系统默认音频输入和输出后,打开任意一个好友窗口,点击麦克风右边的小三角形来选择声音设置,音频输入和输出设置为Windows默认…

新的聊天工具(DII)新版本上线

新的聊天工具(DII)新版本上线

新版本,聊天工具,上线,电脑软件,DII,*是一个最新的时尚聊天工具,完全不同于QQ和MSN。最引人注目的特点是忙碌。最新版本已于本周发布。 点击下载滴: 首先,悬浮窗口显示新朋友轮廓。当你看到一个朋友的消息给你,包括一个新的用户名称,当鼠标移…

你能阻止它吗移动电话预加载软件需

你能阻止它吗移动电话预加载软件需

部门,报告,预加载,你能,个月,针对近期频发的用户接触智能手机预装软件的;绑架;,工信部即将下月正式实施关于加强移动智能终端进网管理的通知(以下简称通知)明确要求,手机厂商预装软件必须通过同时审计水平部批准,手机厂商的要求不得安装未经用户同…

广联达首次发布云战略启动百万奖金

广联达首次发布云战略启动百万奖金

奖金,项目,启动,首次,战略,Beijing on November 14th news, November 13th, glodon software Limited by Share Ltd (hereinafter referred to as glodon ldquo; ; cloud strategy) press conference held in Beijing.This conference, glo…

Windows7重装后出现两个系统的解决

Windows7重装后出现两个系统的解决

解决方案,系统,重装,两个,电脑软件,重新安装Windows7系统,如果你有下一步的安装,很可能会选择升级安装系统,在安装时,你必须选择一个自定义的先进,然后进入硬盘管理界面,系统盘(C)格式,然后安装。这将不是两windows7系统安装后,安装Win7安装。…

一场突如其来的灾难,哇蘑菇2.21闪在

一场突如其来的灾难,哇蘑菇2.21闪在

突如其来,灾难,舞台上,电脑软件,在2010年12月,全球灾难的开始。新的地图,新的职业,让无数勇士踏上了龙的道路,民族服也将更新3.3.5版本下个月,魔兽世界新时期以来也逐渐拉开大幕,它是否是一个热点突变或迟到的巫妖王3.3.5,插件称一方面是必不可少…

PPTV聚力、多屏互动技术,精湛的工艺

PPTV聚力、多屏互动技术,精湛的工艺

互动,精湛,工艺,多屏,技术,12月3日,英国首相,超过中国部级领导出席,英国政府的代表团参加上海会议的英国商业领袖(英国政府商务交流),作为中国最大的运营平台——英超联赛;mdash;体育大亨PPTV聚力,已邀请到中这期间,PPTV聚力深深打动了英国首相卡梅伦…

安全厂商升级软件卸载专家呼吁退货

安全厂商升级软件卸载专家呼吁退货

升级,选项,卸载,厂商,专家,你的新手机安装了多少软件有没有根本不需要删除的软件近日,央视曝光了手机预装软件的种种乱象,引发了用户的广泛关注,一部新手机已被数十个恶意软件捆绑,不但不能删除,而且更可怕。它也会减慢手机的运行速度甚至产生。…