# **类定义**
```
using System;//使用命名空间
namespace 空间的名称A
{
class A{
}
class B{
}
}
namespace 空间的名称B
{
class A{
}
class B{
}
}
```
~~~
<访问标识符,默认internal> class 类名><:基类>
{
// 成员变量
<访问标识符,默认private> <变量数据类型> variable1;
<访问标识符,默认private> <变量数据类型> variable2;
...
<访问标识符,默认private> <变量数据类型> variableN;
// 成员方法
<访问标识符,默认private> <返回类型> method1(参数)
{
//code
}
<访问标识符,默认private> <返回类型> method2(参数)
{
// code
}
...
<访问标识符,默认private> <返回类型> methodN(参数)
{
// code
}
}
~~~
# **封装**
* public:所有对象都可以访问;
* private:对象本身在对象内部可以访问;
* protected:只有该类对象及其子类对象可以访问
* internal:同一个程序集的对象可以访问;
* protected internal:访问限于当前程序集或派生自包含类的类型。
![](https://img.kancloud.cn/e4/a9/e4a9aae63ee7bfe3b7bdf84526fc49ad_240x239.png)
**Internal 访问修饰符**
**详解**
Internal 访问修饰符允许一个类将其成员变量和成员函数暴露给当前程序中的其他函数和对象。换句话说,带有 internal 访问修饰符的任何成员可以被定义在该成员所定义的应用程序内的任何类或方法访问。
~~~
using System;
namespace RectangleApplication
{
class Rectangle
{
//成员变量
internal double length;
internal double width;
double GetArea()
{
return length * width;
}
public void Display()
{
Console.WriteLine("长度: {0}", length);
Console.WriteLine("宽度: {0}", width);
Console.WriteLine("面积: {0}", GetArea());
}
}//end class Rectangle
class ExecuteRectangle
{
static void Main(string[] args)
{
Rectangle r = new Rectangle();
r.length = 4.5;
r.width = 3.5;
r.Display();
Console.ReadLine();
}
}
}
~~~
**Protected Internal 访问修饰符**
Protected Internal 访问修饰符允许在本类,派生类或者包含该类的程序集中访问。这也被用于实现继承。
- Visual Studio 2022安装到非C盘
- .net平台区别
- 常用单词
- 关键字
- 操作符(运算符)
- 标识符(命名规范)
- 开始
- 变量
- 常量
- 数据类型
- 值类型
- 变量数据类型
- 枚举类型enum(常量集合)
- 结构类型struct(结构体)
- 元组类型
- 可null类型(T?)
- 引用类型
- 数组(array)
- 集合(List)
- 内置引用类型
- object
- string
- Dynamic(动态类型)
- delegate委托(代理)类型
- 自定义引用类型
- 接口(interface)
- 类class
- record(定义一个引用类型)
- 指针类型(仅用于非安全代码)
- get和set访问器
- delegate委托
- delegate实现发布订阅与事件
- 类型转换
- 合并操作符??
- 类相关
- Partial 部分类
- 类定义以及访问修饰符(封装)
- abstract抽象类与sealed密封类
- virtual虚方法
- 接口interface
- C# 预处理器指令
- C#技术栈
- 判断(流程控制)与三元运算
- if
- switch
- 三元运算
- 循环
- while 循环
- for循环
- foreach循环
- do...while 循环
- 文件操作
- 其他
- 多开