using System;
class Person
{
// 一个字段不加访问控制 默认是 private
// private 修饰的字段只能在本类中使用
private string _name;
private int _age;
private float _height;
private float _price;
private float _weight;
private bool _girl;
private string _address;
private int _IDnumber;
public int IDNumber {
set {
_IDnumber = value;
}
get {
return _IDnumber;
}
}
public string Address {
set {
_address = value;
}
get {
return _address;
}
}
public bool Girl {
set {
_girl = value;
}
get {
return _girl;
}
}
public float Weight {
set {
_weight = value;
}
get {
return _weight;
}
}
public float Price {
set;
get;
}
// 属性
public string Name {
set {
_name = value;
}
get {
return _name;
}
}
// 一个字段想让外界访问要提供 方法
// 存
// public void SetName (string name)
// {
// // this 后面的就是字段
// this.name = name;
// _name = name;
// // 取
// public string GetName ()
// {
// return _name;
// }
// }
public int Age {
set {
_age = value;
}
get {
return _age;
}
}
public float Height {
set {
_height = value;
}
get {
return _height;
}
}
public void Func1 ()
{
int num = 100;
float f = 2.3f;
}
}
class FuncClass
{
// 在参数前面加 ref 表示参数接收地址
public void Func1 (ref int n)
{
n = 100;
Console.WriteLine (n);
}
public void Func2 (ref float a, ref float b)
{
float temp = 0f;
temp = a;
a = b;
b = temp;
}
// out
// 在方法名前面加返回值类型,并用 return 返回。
// 只能返回一个值
// 也可以使用参数加 out 返回 1 ~ n 个值
// ref 和 out 的异同
// 相同点: 两个都是在传地址
// 不同点:
// 1. out 限定返回值个数,有几个out就必须有几个返回值,ref 不需要
// 2. 使用 out 可以不初始化接收变量
public void Func3 (out int on1, out int on2)
{
int n1 = 10;
int n2 = 20;
on1 = n1;
on2 = n2;
}
public void Func4 (params int[] arr)
{
for (int i = 0; i < arr.Length; i++) {
Console.WriteLine (arr [i]);
}
}
}
class Test
{
public int n;
}
class MainClass
{
public static void Main (string[] args)
{
// Person p = new Person ();
// p.SetName ("Lee");
// Console.WriteLine (p.GetName ());
// p.Name = "Class、Lee";
// Console.WriteLine (p.Name);
// p.Age = 18;
// p.Height = 1.75f;
// Console.WriteLine (p.Age);
// Console.WriteLine (p.Height);
// p.Price = 2.5f;
// Console.WriteLine (p.Price);
// p.Weight = 55.25f;
// Console.WriteLine (p.Weight);
// p.Girl = false;
// Console.WriteLine (p.Girl);
// p.Address = "广东梅州";
// Console.WriteLine (p.Address);
// p.IDNumber = 4414211;
// Console.WriteLine (p.IDNumber);
// 定义的变量一定会存在栈里面
// 每一个方法都是一个栈
// 也就是变量都是在方法里面定义
// int n = 10;
// float f = 1.2f;
// Person p = new Person ();
// Person p1 = new Person ();
// 值类型 : 基本数据类型都是值类型
// 引用类型: 凡是 new 出来的都是引用类型(结构体除外)
// int num = 10;
// Person p = new Person ();
//
// int num1 = 10;
// int num2 = num1;
// num1 = 20;
//
// Test t = new Test ();
// t.n = 10;
// Test t2 = t;
// t.n = 20;
// Console.WriteLine ("t1.n:" + t.n);
// Console.WriteLine ("t2.n:" + t2.n);
//
FuncClass f = new FuncClass ();
// int num = 0;
// f.Func1 (ref num);
// Console.WriteLine ("num:" + num);
float num1 = 10f;
float num2 = 20f;
f.Func2 (ref num1, ref num2);
Console.WriteLine (num1);
Console.WriteLine (num2);
// 用来接收返回值的
int num3;
int num4;
f.Func3 (out num3, out num4);
Console.WriteLine (num3);
Console.WriteLine (num4);
// int[] a = { 1, 2, 3, 4, 9, 5, 7 };
f.Func4 (1, 2, 3, 4, 9, 6, 7);
}
}