关于C#的set和get问题
2015-11-06 10:20
405 查看
如何正确的理解get和set呢???
体会set:并没有给_aa赋值,但是_aa里面有值了
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
using System.Web;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
namespace ConsoleApplication1
{
class Program
{
public static List<string> bb;
private static List<string> _aa;
public static List<string> aa
{
set
{
_aa = value;
foreach (var dd in value)
{
Console.WriteLine(dd);
}
Console.WriteLine("set End");
}
get
{
return _aa;
}
}
static void Main(string[] args)
{
bb = new List<string>();
bb.Add("jdkdjdk");
bb.Add("jjjjj");
bb.Add("iiiiii");
bb.Add("oooodd");
aa = bb;
foreach (var dd in aa)
{
Console.WriteLine(dd);
}
Console.WriteLine("aa End");
Console.WriteLine();
foreach (var dd in _aa)
{
Console.WriteLine(dd);
}
Console.WriteLine("_aa End");
Console.Read();
}
}
}
体会get:并没有给aa赋值,但能够取到aa里面的值
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
using System.Web;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
namespace ConsoleApplication1
{
class Program
{
public static List<string> bb;
private static List<string> _aa;
public static List<string> aa
{
set
{
_aa = value;
foreach (var dd in value)
{
Console.WriteLine(dd);
}
Console.WriteLine("set End");
}
get
{
return _aa;
}
}
static void Main(string[] args)
{
bb = new List<string>();
bb.Add("jdkdjdk");
bb.Add("jjjjj");
bb.Add("iiiiii");
bb.Add("oooodd");
_aa = bb;
foreach (var dd in aa)
{
Console.WriteLine(dd);
}
Console.WriteLine("aa End");
Console.WriteLine();
foreach (var dd in _aa)
{
Console.WriteLine(dd);
}
Console.WriteLine("_aa End");
Console.Read();
}
}
}
个人理解:此时的aa和_aa都指向同一块内存new List<string>(),且set只有在用等号赋值的时候会触发!
体会set:并没有给_aa赋值,但是_aa里面有值了
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
using System.Web;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
namespace ConsoleApplication1
{
class Program
{
public static List<string> bb;
private static List<string> _aa;
public static List<string> aa
{
set
{
_aa = value;
foreach (var dd in value)
{
Console.WriteLine(dd);
}
Console.WriteLine("set End");
}
get
{
return _aa;
}
}
static void Main(string[] args)
{
bb = new List<string>();
bb.Add("jdkdjdk");
bb.Add("jjjjj");
bb.Add("iiiiii");
bb.Add("oooodd");
aa = bb;
foreach (var dd in aa)
{
Console.WriteLine(dd);
}
Console.WriteLine("aa End");
Console.WriteLine();
foreach (var dd in _aa)
{
Console.WriteLine(dd);
}
Console.WriteLine("_aa End");
Console.Read();
}
}
}
体会get:并没有给aa赋值,但能够取到aa里面的值
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
using System.Web;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
namespace ConsoleApplication1
{
class Program
{
public static List<string> bb;
private static List<string> _aa;
public static List<string> aa
{
set
{
_aa = value;
foreach (var dd in value)
{
Console.WriteLine(dd);
}
Console.WriteLine("set End");
}
get
{
return _aa;
}
}
static void Main(string[] args)
{
bb = new List<string>();
bb.Add("jdkdjdk");
bb.Add("jjjjj");
bb.Add("iiiiii");
bb.Add("oooodd");
_aa = bb;
foreach (var dd in aa)
{
Console.WriteLine(dd);
}
Console.WriteLine("aa End");
Console.WriteLine();
foreach (var dd in _aa)
{
Console.WriteLine(dd);
}
Console.WriteLine("_aa End");
Console.Read();
}
}
}
个人理解:此时的aa和_aa都指向同一块内存new List<string>(),且set只有在用等号赋值的时候会触发!
相关文章推荐
- c#调用COM组件
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#实现子窗体与父窗体通信方法实例总结
- C#通用邮件发送类分享
- C#中this的用法集锦
- C#.NET获取拨号连接的宽带连接方法
- C#异步绑定数据实现方法
- C#实现AddRange为数组添加多个元素的方法
- C#中Equality和Identity浅析
- C#生成饼形图及添加文字说明实例代码
- C#判等对象是否相等的方法汇总
- C#简单的向量用法实例教程
- C#实现基于链表的内存记事本实例
- C#托管堆对象实例包含内容分析