c#引用类型是怎么创建的,新手不大懂

问题描述

c#引用类型是怎么创建的,新手不大懂

想问各位大神一个问题

TcpClient remoteClient = listener.AcceptTcpClient();
这句话中没有new 但是程序在堆中分配内存了吗
还有类似的 string str = 。。。.ToString();

解决方案

AcceptTcpClient返回的,AcceptTcpClient内部会产生一个对象

解决方案二:

AcceptTcpClient会创建。
string很特殊,当你写"abc",就会分配内存了。
另外在栈上分配值类型、结构体也不要new

解决方案三:

listener.AcceptTcpClient();
这个是一种很常见的模式,叫做工厂模式。
比如,DataRow就不能由客户创建,它由DataTable去创建并且由NewRow返回。
另外单例模式中,我们也会封闭构造函数,由内部创建。

解决方案四:

肯定会分配,不过既然你玩C#就不要过于去考虑内存的问题,交给微软去做吧。

解决方案五:

内存,确实是分配了。但不一定是在这一句,而可能是在 listener 的创建、或者 listener 执行的某一步就完成分配了,供后续代码来引用。具体 的分配由系统实现,不用太关心。

string str = 。。。.ToString(); 确实是在这一句分配了内存。

解决方案六:

肯定会分配,不过既然你玩C#就不要过于去考虑内存的问题,交给微软去做吧。

解决方案七:

23个设计模式的一种:工厂模式

解决方案八:

listener.AcceptTcpClient();
这个方法内部new了一个新的对象TcpClient ,并将这个对象作为结果返回了!!!

时间: 2024-10-31 10:49:57

c#引用类型是怎么创建的,新手不大懂的相关文章

位图-mfc显示透明背景代码看不大懂

问题描述 mfc显示透明背景代码看不大懂 /*-----------------显示透明背景图片-------------------*/ void CHIT_MOUSE::TransparentBitmap(HDC hdc HBITMAP hBitmap short xStart short yStart short xadd short yadd COLORREF cTransparentColor){ BITMAP m_bm; COLORREF cColor; // 创建临时DC HDC

c语言-edison连接mpu6050代码看不大懂

问题描述 edison连接mpu6050代码看不大懂 #include "math.h" #include "stdio.h" #include "mraa.h" #include "unistd.h" #define MPU6050_I2C_ADDR 0x68 #define PWR_MGMT_1 0x6B #define SMPLRT_DIV 0x19 #define CONFIG 0x1A #define GYRO_CO

c#命名空间的问题不大懂

问题描述 c#命名空间的问题不大懂 想问大神们一个关于命名空间的问题 using system.net;using system.net.socket; 这两个有什么联系呢? 第二个是不是包含在第一个里面,为啥引用了第一个还要在用第二个.谢谢 解决方案 打个比方,一幢楼每个单元留下都有门锁,每家也都有自己家的门锁,回家的时候,打开了单元门,还需要打开自己家的门才能进入你家. 解决方案二: using system.net;引用该包下的所有类,但不包括子包socket里的类using system

java-刚开始学习安卓,有一个问题不大懂

问题描述 刚开始学习安卓,有一个问题不大懂 HashMap支持一对多吗?我怎么记得只能是一对一的啊? 解决方案 你这样的组装数据是:lsit里面有多个map,而map里面只有一个image,以为map每次都在for循环重新new了一次.建议你debug进去看下listItems的值就知道最后是什么样的数据格式. 解决方案二: 这个for循环里每个循环建立了一个新的listItem,然后这个listItem被赋值第i个图片,然后listItems add这个listItem,所有每个listIte

模拟器创建-安卓新手,完全不会。想建个平板模拟器。不知道怎么填。谁能截个图

问题描述 安卓新手,完全不会.想建个平板模拟器.不知道怎么填.谁能截个图 解决方案 解决方案二: 解决方案三: http://jingyan.baidu.com/article/c74d600068ad420f6a595dd2.html 参考上面的步骤. 解决方案四: 重点是红框那里,左边x右边,要选左边大于右边的 解决方案五: Device设备这一栏选择Tablet

未能加载文件或程序集“Spring.Core"或者它的依赖项,找到的程序集清单定义与程序集引用不匹配。

问题描述 错误提示:未能加载文件或程序集"Spring.Core,Version=1.3.0.20349,Culture=neutral,PublicKeyToken=65e474d141e25e07"或它的某一个依赖项.找到的程序集清单定义与程序集引用不匹配.(异常来自HRESULT:0x80131040)说明:执行当前Web请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息.异常详细信息:System.IO.FileLoadExce

Word中创建宏的攻略

  宏其实是在我们的Word或者是Excel中,常常会碰到的一个词,也许很多的朋友,不大懂它,但是它的用处真的十分的强大.接下来,感兴趣的用户可以跟小编一起学习一下在Word中创建宏的技巧. Word 可以使用宏记录器录制一系列操作来创建宏 (宏:可用于自动执行任务的一项或一组操作.可用 Visual Basic for Applications 编程语言录制宏.),也可以在 Visual Basic 编辑器 (Visual Basic 编辑器:一种环境,用于编写新的 Visual Basic

根据Datatable创建SQL表

问题描述 Fori=1Toqar_tb.Columns.Count-1sqlcolumn+=qar_tb.Columns(i).ColumnName+""+qar_tb.Columns(i).DataType.ToString+""+"NOTNull,"Nextsql="CREATETABLEraw_data"+"(DATA_INDEXINTEGERCONSTRAINTPKeyDATA_INDEXPRIMARYKEY

急...新手提问...JAVA弄出来的Android小应用跟电脑通信的问题

问题描述 希望用Android手机与电脑进行通信,通过手机发送的关键字,在电脑内的数据库进行搜索,并将搜索的具体内容在电脑上显示出来...............不知道这个东西是不是很难...由于只学过VFP,不过好像都说不大好用..............不知道这么做有没有可行性....关于这种类型的东西,有什么特别需要注意的么?请教.....由于只是个学生,很多东西不大懂...谢谢... 解决方案 解决方案二:关注中....最近我也装上了android开发插件..想了解了解