C#中关键字ref修饰类对象或结构体[转]
1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 namespace CSharpTest 5 { 6 struct Dog 7 { 8 public int _nFeet; 9 public string _sound; 10 public Dog(int n, string sound) 11 { 12 _nFeet = n; 13 _sound = sound; 14 } 15 public int NFeet 16 { 17 get { return _nFeet; } 18 set { _nFeet = value; } 19 } 20 public string Sound 21 { 22 get { return _sound; } 23 set { _sound = value; } 24 } 25 public string ToString() 26 { 27 return String.Format("The dog has {0} feet, and sounds {1}.", 28 _nFeet.ToString(), _sound); 29 } 30 } 31 class Cat 32 { 33 private int _nFeet; 34 private string _sound; 35 public Cat(int n, string sound) 36 { 37 _nFeet = n; 38 _sound = sound; 39 } 40 public int NFeet 41 { 42 get { return _nFeet; } 43 set { _nFeet = value; } 44 } 45 public string Sound 46 { 47 get { return _sound; } 48 set { _sound = value; } 49 } 50 public string ToString() 51 { 52 return String.Format("The cat has {0} feet, and sounds {1}.", 53 _nFeet.ToString(), _sound); 54 } 55 } 56 class Program 57 { 58 static void Main(string[] args) 59 { 60 // Cat 61 Cat cat = new Cat(4, "miao~"); 62 System.Console.WriteLine(cat.ToString()); 63 BeatCat(cat); 64 System.Console.WriteLine(cat.ToString()); 65 BeatCat2(ref cat); 66 System.Console.WriteLine(cat.ToString()); 67 System.Console.WriteLine(); 68 // Dog 69 Dog dog = new Dog(4, "wang!"); 70 System.Console.WriteLine(dog.ToString()); 71 BeatDog(dog); 72 System.Console.WriteLine(dog.ToString()); 73 BeatDog2(ref dog); 74 System.Console.WriteLine(dog.ToString()); 75 } 76 public static void BeatCat(Cat cat) 77 { 78 cat.NFeet = 3; 79 cat.Sound = "wang~"; 80 } 81 public static void BeatCat2(ref Cat cat) 82 { 83 cat.NFeet = 2; 84 cat.Sound = "huhu~"; 85 } 86 public static void BeatDog(Dog dog) 87 { 88 dog.NFeet = 3; 89 dog.Sound = "miao!"; 90 } 91 public static void BeatDog2(ref Dog dog) 92 { 93 dog.NFeet = 2; 94 dog.Sound = "huhu!"; 95 } 96 } 97 }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步