C#中关键字ref修饰类对象或结构体[转]
using System;
using System.Collections.Generic;
using System.Text;
namespace CSharpTest
{
struct Dog
{
public int _nFeet;
public string _sound;
public Dog(int n, string sound)
{
_nFeet = n;
_sound = sound;
}
public int NFeet
{
get { return _nFeet; }
set { _nFeet = value; }
}
public string Sound
{
get { return _sound; }
set { _sound = value; }
}
public string ToString()
{
return String.Format("The dog has {0} feet, and sounds {1}.",
_nFeet.ToString(), _sound);
}
}
class Cat
{
private int _nFeet;
private string _sound;
public Cat(int n, string sound)
{
_nFeet = n;
_sound = sound;
}
public int NFeet
{
get { return _nFeet; }
set { _nFeet = value; }
}
public string Sound
{
get { return _sound; }
set { _sound = value; }
}
public string ToString()
{
return String.Format("The cat has {0} feet, and sounds {1}.",
_nFeet.ToString(), _sound);
}
}
class Program
{
static void Main(string[] args)
{
// Cat
Cat cat = new Cat(, "miao~");
System.Console.WriteLine(cat.ToString());
BeatCat(cat);
System.Console.WriteLine(cat.ToString());
BeatCat2(ref cat);
System.Console.WriteLine(cat.ToString());
System.Console.WriteLine();
// Dog
Dog dog = new Dog(, "wang!");
System.Console.WriteLine(dog.ToString());
BeatDog(dog);
System.Console.WriteLine(dog.ToString());
BeatDog2(ref dog);
System.Console.WriteLine(dog.ToString());
}
public static void BeatCat(Cat cat)
{
cat.NFeet = ;
cat.Sound = "wang~";
}
public static void BeatCat2(ref Cat cat)
{
cat.NFeet = ;
cat.Sound = "huhu~";
}
public static void BeatDog(Dog dog)
{
dog.NFeet = ;
dog.Sound = "miao!";
}
public static void BeatDog2(ref Dog dog)
{
dog.NFeet = ;
dog.Sound = "huhu!";
}
}
}
C#中关键字ref修饰类对象或结构体[转]的更多相关文章
- 3-4 8精彩算法集合。struct(C,ruby) Ruyb类对象和结构体, 3-5
在本章我遇到了c语言的struct数据,即自定义的数据结构.比如: struct edge { int u; int v; int w; }; 题目给了一组数据,用edge储存.需要按照w大小排序.我 ...
- C++派生类中如何初始化基类对象(五段代码)
今天收到盛大的面试,问我一个问题,关于派生类中如何初始化基类对象,我在想派生类对于构造函数不都是先构造基类对象,然后在构造子类对象,但是如果我们在成员初始化列表先初始化派生类的私有成员,在函数内去调用 ...
- C++中的空类与空结构体大小
今天面试遇到了一个很有意思的问题,即空结构体在C++中所占的内存大小是多少?参见如下代码: #include <iostream> struct S0 { }; int main() { ...
- 你有对象类,我有结构体,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang结构体(struct)的使用EP06
再续前文,在面向对象层面,Python做到了超神:万物皆为对象,而Ruby,则干脆就是神:飞花摘叶皆可对象.二者都提供对象类操作以及继承的方式为面向对象张目,但Go lang显然有一些特立独行,因为它 ...
- c#中关于sealed修饰类的性能提升的测试
在clr var c#一书中,作者描述当用sealed修饰类时,可以提高系统性能而且建议大家也养成用sealed来修饰类的习惯.由于对性能二字比较敏感,所以本文先测试一下用sealed分别修饰和不修饰 ...
- 关键字final 修饰类、方法、属性、参数类型
笔记: /** 关键字final(最终的) 标记的类不能被继承, 提高安全性,提高程序的可读性 * 1.final 修饰类,这个类就不能被继承: 如:String类.StringBuffer类.Sys ...
- final关键字概念与四种用法和final关键字用于修饰类和成员方法
fifinal关键字 概述 学习了继承后,我们知道,子类可以在父类的基础上改写父类内容,比如,方法重写.那么我们能不能随意的继承 API中提供的类,改写其内容呢?显然这是不合适的.为了避免这种随意改写 ...
- C#中关键字ref与out的区别【转】
在C#中,ref与out是很特殊的两个关键字.使用它们,可以使参数按照引用来传递.总的来说,通常我们向方法中传递的是值.方法获得的是这些值的一个拷贝,然后使用这些拷贝,当方法运行完毕后,这些拷贝将被丢 ...
- 2.5 C++类class和结构体struct区别
参考:http://www.weixueyuan.net/view/6337.html 总结: 在C++中,struct类似于class,在其中既可以定义数据成员,又可以定义成员函数. 在C++中,s ...
随机推荐
- 「linux」win+linux 双系统 默认启动项 的修改
修改/etc/default/grub文件,其中的GRUB_DEFAULT表示默认启动项: sudo gedit /etc/default/grub 注意:启动项是从0开始计数. 要使修改生效需要运行 ...
- LR 常见问题收集及总结
一:LoadRunner常见问题整理 1.LR 脚本为空的解决方法: 1.去掉ie设置中的第三方支持取消掉 2.在系统属性-高级-性能-数据执行保护中,添加loadrunner安装目录中的vugen. ...
- ubuntu安装最新版本的node.js
下面的方法适用于最新版本的Ubuntu.Ubuntu 12.04 LTS.Ubuntu 12.10.Ubuntu 13.04等版本.它可以帮助开发者在Ubuntu上安装Node.js,无需从头编译安装 ...
- Java中删除指定文件夹文件夹下面有内容也删除使用递归方案
import java.io.File; import java.text.ParseException; import java.text.SimpleDateFormat; import java ...
- JavaScript,base64加密解密
直接下载吧: http://files.cnblogs.com/files/xiluhua/base64Decode.js
- Centos7下卸载docker
最近发现某台机器上的Docker服务无法开启,报如下错误: [root@localhost ~]# docker ps -a Cannot connect to the Docker daemon. ...
- http协议了解
在web应用中,服务器把网页的HTML代码发送给浏览器,让浏览器显示出来,浏览器和服务器之间的传输协议就是HTTP协议.HTTP是在网络上传输HTML的协议,用于浏览器和服务器之间的通信. 一个网页打 ...
- Resolving failed: Temporary failure in name resolution 错误解决方法
首先,检查自己的服务器是否配置了DNS: 其次,在确认了自己已经配置了DNS后,并且域名解析已经正常的情况下,还有上面的问题,接下来就是重启自己的web服务器.比如,apache,nginx等. ...
- c#之xml
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.X ...
- 周赛-kiki's game 分类: 比赛 2015-08-02 09:24 7人阅读 评论(0) 收藏
kiki's game Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 40000/10000 K (Java/Others) Total S ...