C# 测试
新建Person对象类作为基成员,以此创建一个元数据表
将表中满则特定查询结果的一个成员对象作为参数传递,观察属性改变对元数据的改变
class Program
{
static List<Person> Peoples;
static void Main(string[] args)
{
//新建测试表
Peoples = new List<Person>();
for (int i = 1; i < 4; i++)
{
Peoples.Add(new Person(i, "i"));
}
var person = Peoples.Where(c => c.ID == 3).FirstOrDefault();
//对传参的对象进行属性修改
Test(person);
//打印结果
foreach (var p in Peoples)
{
Console.WriteLine($"{p.ID}:{p.Name}");
}
Console.ReadKey();
}
//测试函数
static void Test(Person person)
{
if (person == null)
{
return;
}
person.Name = "Test";
Console.WriteLine("Test");
}
//Person对象类
class Person
{
public Person(int id, string name)
{
ID = id;
Name = name;
}
public int ID;
public string Name;
}
}
输出结果
Test
1:i
2:i
3:Test
可以看出,C#里元数据中成员的传递,是传递的真实对象,非拷贝值,对其的任何修改会同样在元数据中有了变化
备注
在C#中实现自定义类似队列机制的操作时,以List作为实现基础时,当需要对队列进行操作时,仅需将队列某成员作为参数进行传递;传递参数时注意成员变量权限的规范