public class test { public static void Main() { Person p = new Person(); ConvInt(Person.Age); ConvStr(Person.Name); ConvGuid(Person.id); Console.WriteLine(Person.Age); Console.WriteLine(Person.Name); Console.WriteLine(Person.id); Console.Read(); } public static void ConvGuid(Guid id) { if (id == Guid.Empty) { id = Guid.NewGuid(); } } public static void ConvInt(int age) { if (age == 0) { age = 1; } } public static void ConvStr(string name) { if (name == null) name = "name"; } } public class Person { public static Guid id { get; set; } public static int Age { get; set; } public static string Name { get; set; } }
想在方法中对对象属性进行修改,就像引用传值
public static void ConvGuid(Person p) { if (p.id == Guid.Empty) { p.id = Guid.NewGuid(); } } public static void ConvInt(Person p) { if (p.age == 0) { p.age = 1; } } public static void ConvStr(Person p) { if (p.name == null) p.name = "name"; } onvInt(p); ConvStr(p); ConvGuid(p);
两个方案:
1、单搞一个工具类,进行转换
Person.Age = EConvert.ToInt(Person.Age);
Person.Name = EConvert.ToString(Person.Name);
2、用ref数实现,使参数按引用传递。
这个~!!!引用类型传参么.?
应该把对象传进去,然后再修改,就可以直接更新对象的属性值了.
加 ref 即可.家
public static void ConvGuid( ref Guid id)
第一种:C#中有ref关键字,在需要保存修改状态的参数前面用ref修饰。
第二种:还有另外一种方式,将方法ConvXXX方法的参数改成对象的引用,不过这样就要将这些方法提取出来放到另外一个类中,并且不能设置为static修饰。
第三种方式:你可以在test类下面,写一个用static修饰Person类型的成员变量,并且用静态代码初始化该成员变量,将ConvXXX方法的参数设置为Person类型对象引用。