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 ...
随机推荐
- Power Gating的设计(架构)
switching network的层次: 一般选择flatted的形式,hierarchy的结构对voltage drop和performance delay有影响. Power network的结 ...
- For 循环嵌套 0309
For ...
- 卸载PythonToolKit的方法
先借用官网的内容介绍一下: PythonToolkit (PTK) is an interactive environment for python. It was originally design ...
- linux中查看硬件温度的命令
用到的命令是: sensors 这个命令来自一个叫 lm_sensors 的包. 执行 sensors-detect 可以以询问的方式做一些配置(可以选择检测哪些硬件的温度).
- HTML5,添加图片
<img src="0.jpg" width="100" height="150" alt="11">
- 「linux」win+linux 双系统 默认启动项 的修改
修改/etc/default/grub文件,其中的GRUB_DEFAULT表示默认启动项: sudo gedit /etc/default/grub 注意:启动项是从0开始计数. 要使修改生效需要运行 ...
- Xutils请求服务器json数据与下载文件
String code_url = "https://ic.snssdk.com/user/mobile/send_code/v2/"; HttpUtils httpUtils = ...
- ILOG的一个基本应用——解决运输问题、转运问题
一.Ilog软件 该软件用来解决优化问题,大部分是线性问题,深一点的其他内容还不清楚.只知道一些基础的应用,网上相关内容很少.接下来就解决一个简单的运输问题 二.运输问题 数学模型 ILOG OPL程 ...
- html5 图片热点area,map的用法
今天看了一个html5在图片上面创建热点的标签,所谓图片热点就是给你一张图片然后你可以设置点击图片不同的位置进入不同的链接!如果下面是一张图片的话,里面在长方形.圆形.三角形区域都可以进入其他网页! ...
- php防盗链,php ci在control里面控制除了自己站内的链接点击跳转,其他来源的都跳到站内页面
php防盗链,php ci在control里面控制除了自己站内的链接点击跳转,其他来源的都跳到站内页面 $route['jump/(:any)/(:any)'] = "index/jump/ ...