一、之值类型与引用类型
public static void Main(string[] args) { int age = 10;//值类型在内存中开辟一块区域存放 object age1 = age;//引用类型存的是地址 此时指向age的初始地址 age += 1;//age重新开辟新的区域 此时为11, Console.WriteLine("fist="+age1);//指向老的区域 值为10; int age2=(int)age1;//引用类型转化值类型 为10; Console.WriteLine("test="+age2); age2 += 1; Console.WriteLine("secend="+age); Console.ReadKey(); }
输出结果 10 10 11
二、之继承重写
public class Program { public static void Main(string[] args) { Employee yee = new Employee(); Console.ReadKey(); } } class Person { protected int age = 10; public Person() { this.Output(); } public virtual void Output() { Console.WriteLine("Person"+this.age); } } class Employee : Person { public Employee() : base() { base.age = 20; } public override void Output() { Console.WriteLine("Employee"+base.age); } }
输出结果 10
三、C# 关于base常见使用及基本理解
本类代码 public class HomeController :BaseController { [ActionTestFilter] public ActionResult Index() { ViewBag.Date = base.enumTest; return View(); } } 父类代码 [ActionTestFilter] 此处使用Filter权限过滤 也可以说是面向切面编程 public class BaseController : Controller { public EnumClass enumTest { get { return ((EnumClass)this.ViewBag.EnumClass); } } } this.ViewBag.EnumClass 在ActionTestFilter 里声明 filterContext.Controller.ViewBag.EnumClass = 2; this关键字引用类的当前实例。静态成员方法中不能使用this关键字,this关键字只能在实例构造函数、实例方法或实例访问器中使用。base关键字用于从派生类中访问基类的成员