网站首页 > 技术文章 正文
关注我,为您分享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.扩展方法
扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其它方式修改原始类型
扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用
如果扩展方法与类中的某个方法同名,扩展方法就从来不会被调用。类中已有的实例方法优先。
代码示例:
/// <summary>
/// 扩展user
/// </summary>
public static class UserExt
{
/// <summary>
/// 扩展User类的一个方法
/// </summary>
/// <param name="u">被扩展类的一个对象</param>
/// <param name="a">姓名</param>
/// <param name="b">年龄</param>
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();
猜你喜欢
- 2025-07-28 5分钟掌握 c# 网络通讯架构及代码示例
- 2025-07-28 C#自学——基础语法(看看就行)(c#怎么自学)
- 2025-07-28 C# 实现固定长度的队列Queue(c#队列事件)
- 2025-07-28 c# 100秒倒计时功能的C#代码示例(基于Windows Forms):
- 2025-07-28 c#夯实基础-委托之Action(c# action 委托)
- 2025-07-28 5分钟掌握c#文件打印流程 及代码示例
- 2025-07-28 C#程序设计_窗体(c#窗体是什么)
- 2025-07-28 C#.NET 并发令牌 详解(c# 并发 parallel)
- 2025-07-28 c#,委托与事件,发布订阅模型,观察者模式
- 2025-07-28 Protobuf高级用法 - Options以及Extensions
- 1518℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 602℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 522℃MySQL service启动脚本浅析(r12笔记第59天)
- 490℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 489℃启用MySQL查询缓存(mysql8.0查询缓存)
- 477℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 457℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 454℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- windowsscripthost (69)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)