台州游戏,苏教版六年级上册语文教案,我的超级情人txt
时间:2019年08月19日
今天去面试,技术主管问我值类型和引用类型有什么区别,面对如此基础的知识只能怪自己没有好好准备以及只顾写代码对一些基础知识其然不知所以然,于是我含含糊糊回答了一番:
技术主管:
以上问题也就是技术主管平时遇到的坑吧。上述的我就不献丑了,所以也是含糊其辞直接回答。所以在面试完了以后我专门针对性的上网查了资料,以下是我的总结,若有错误望博友多多指正^_^。
c#所有类型均继承system.object
值类型->valuetype->object
引用类型不会继承valuetype。引用类型可以继承其他类型
在object中equal的方法,可以辨别两个对象是否是一个对象的方法。 **注意,上面这句话很关键 必须是一个对象并且值一样**
public class test1 { public string name { get; set;} public int age { get; set; } } static void main(string[] args) { test1 ts1 = new test1(); ts1.name = "lele"; ts1.age = 10; test1 ts2 = new test1(); ts2.name = "lele"; ts2.age = 10; bool iszlx= ts1.name.equals(ts2.name);//值类型比较返回 true bool isyylx = ts1.equals(ts2); //引用返回 false }
通过以上的代码测试得出结论值类型是比较两个对象是否是相同内存地址
刚开始回答比较简单粗暴上代码:
static void main(string[] args) { int[] a = { 1, 2 }; int[] b = a; \\输出: a={1,2} , b={1,2}; b[0] = 2; \\这时我做了修改 输出: a={2,2} ,b={2,2} }
以上可以看到不是我期望的那样不影响原数组a 坑!
总结:原来数组为引用类型,直接赋值等于是将每个元素的地址复制
static void main(string[] args) { int[] i = { 1, 2 }; int[] b = (int[])i.clone();\\输出: a={1,2} , b={1,2}; b[0] = 2;\\输出: a={1,2} , b={2,2}; }
符合预期.
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
asp.net搭建博客,使用BlogEngine.NET+MySql搭建博客
网友评论