关注我,为您分享C#技术实现,感谢转发及点赞
1.Object类。
方法 | 注释 |
ToString() | 是获取对象的字符串表示的一种便捷方式 |
GetHashTable() | 如果对象放在名为映射(也称为散列表或字典)的数据结构中,就可以使用这个方法。 |
Equals() ReferenceEquals() | 对象相等比较 |
GetType() | 获取对象所属类的更多信息,包括基本类、方法、属性等。 |
2.类包含
- 包含类型是在另一个对象中做数据成员的对象类型
public class A //定义了一个类型A
{
//类型A
}
public class B//定义了一个类型B
{
private A a1;//申明了一个A类型的私有字段
public A AAA //A类型的属性
{
get;set;
}
public A GetA()//返回A类型的值
{
return a1;
}
}
实践代码:
namespace ZzzZConsoleApp1
{
public class A//创建一个类,下面类中我们会创建一个他这个类型的私有变量
{
private string val1;//创建一个私有变量
public string Val1 { get => val1; set => val1 = value; }
public A(string str)//定制一个构造函数
{
val1 = str;//为它赋上传进来的值
}
}
public class B
{
private A va1;
public A Bva1
{
get { return va1; }
set { va1 = value; }
}
//下面这个方法也一样,返回类型是上一个类A
public A GetA()
{
return new A("hahaha");
}
}
}
static void Main(string[] args)
{
B b = new B();
b.Bva1 = new A("参数");//实例化一个对象去交给b的一个属性
Console.WriteLine(b.Bva1.Val1);//使用对象b
A a = b.GetA();//调用对象b的GetA方法来返回一个A类型的对象
Console.ReadLine();
}
3. 类嵌套
代码示例:
public class Computer//定义一个计算机大类
{
public string Name
{
get;set;
}
//这是被嵌套的类
public class c1
{
private string use;//定义一个私有变量
public c1(string name)//为被嵌套类创建一个构造函数
{
use = name;
}
public string Use//被嵌套类的一个属性
{
get { return use; }
set { use = value; }
}
public string c1name(string name)
{
return "我现在用的是" + name;
}
public static string Yu(string st )
{
return "一共有" + st + "种语言";
}
}
}
4.匿名类型
var与new关键字一起使用时,可以创建匿名类型。
匿名类型只是一个继承了Object的、没有名称的类。
该类的定义从初始化器中推断,类似于隐式类型化的变量。
var info = new { Name = "ZzzZ", Age = 1, Sex = "男" };
5.分布类
指同一个类的代码分布在多个文件中
使用partial关键字来修饰
6.扩展方法
扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其它方式修改原始类型
扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用
如果扩展方法与类中的某个方法同名,扩展方法就从来不会被调用。类中已有的实例方法优先。
代码示例:
///
/// 扩展user
///
public static class UserExt
{
///
/// 扩展User类的一个方法
///
/// u">被扩展类的一个对象
/// a">姓名
/// b">年龄
public static void Exists(this User u,string a, int b)
{
if (u._Name == a && u._Age == b)
{
Console.WriteLine("相同的");
}
else
{ Console.WriteLine("写错了"); }
}
}
User ur = new User();
ur._Name = "ZzzZ";
ur._Age = 1;
ur.Exists("ZzzZ",36);
Console.ReadLine();