C sharp #003# 面向对象编程基本构件
Posted xkxf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C sharp #003# 面向对象编程基本构件相关的知识,希望对你有一定的参考价值。
饮水思源:金老师的自学网站
类的属性
字段+get/set方法=属性
(之前都是把字段和属性混着用。。)
经典写法:
using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { var x = new MyTest(); x.MyValue = "hello"; Console.WriteLine(x.MyValue); // => hello --2019/5/1 10:12:49 Console.ReadKey(); } } // 默认为internal,程序集内可调用 // 如果是public,那就是公共的了,任何程序集都可以去调用到它 public class MyTest { // 属性的经典实现方法 private string _myValue = ""; public string MyValue { get { return _myValue; } set { _myValue = value + " --" + DateTime.Now; } } } }
自动实现属性(编译器会自动添加一个私有字段):
class Program { static void Main(string[] args) { var x = new MyTest(); x.MyValue = "hello"; Console.WriteLine(x.MyValue); // => hello Console.ReadKey(); } } public class MyTest { public string MyValue { get; set; } }
其它玩法(来自原PPT截图):
简化字段/属性的初始化
using System; using System.Collections.Generic; namespace ConsoleApp1 { class Program { static void Main(string[] args) { var x = new MyTest() { MyValue = "hello" }; // 不用专门去写构造器的,但是没法直接设置对象的私有字段。 Console.WriteLine(x.MyValue); var objs = new List<MyTest>{ new MyTest { MyValue = "Hello" }, new MyTest { MyValue = "World" } }; // 直接初始化集合对象 // => hello Console.ReadKey(); } } public class MyTest { private string aPrivateValue; public string MyValue { get; set; } } }
命名空间
类似于Java里的package,允许嵌套
using ConsoleApp1.InnerNamespace; using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { var x = new MyTest() { MyValue = "hello" }; // 不用专门去写构造器的,但是没法直接设置对象的私有字段。 Console.WriteLine(x.MyValue); // => hello Console.ReadKey(); } } namespace InnerNamespace { public class MyTest { private string aPrivateValue; public string MyValue { get; set; } } } }
程序集
基本概念(拷贝自PPT):
- .NET程序的基本构造块是“程序集(Assembly)” 。
- 程序集是一个扩展名为.dll或.exe的文件。
- .NET Framework中的各个类,存放在相应的程序集文 件中。
定义自己的程序集(创建一个类库项目,编译成ddl):
namespace MyDdl1 { public class MathOpt { public static int add(int a, int b) { return a + b; } } }
引用自己的程序集(引用ddl):
using MyDdl1; using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { int result = MathOpt.add(1, 2); Console.WriteLine(result); // => 3 } } }
以上是关于C sharp #003# 面向对象编程基本构件的主要内容,如果未能解决你的问题,请参考以下文章