ReSharper 2025.2 Help

快速创建类型

在本教程中,我们创建一个包含标准方法集的类型。

在 C# 中创建类型或实体可能相当困难。 毕竟,有多少人能手动记住正确实现 Equals()? 幸运的是,ReSharper 可以提供帮助。 让我们来看一下。

首先,让我们定义一个最简单的实体类,称为 Person ,它将存储一个人的姓名和年龄:

public class Person { public string Name { get; set; } public int Age { get; set; } }

1. 生成构造函数

目前,这个类的初始化很麻烦,因为它没有构造函数。 让我们使用 Generate Code 命令 Alt+Insert 来创建一个。 首先,让我们在类上启动它并选择 构造函数

ReSharper:生成构造函数

现在,我们看到一个对话框,询问我们要初始化哪些属性。 让我们选择所有属性。

ReSharper:生成构造函数

按下 完成 后,我们的类就有了一个生成的构造函数:

public Person(string name, int age) { Name = name; Age = age; }

2. 生成相等成员

假设我们想将 Person 实例保存在一个 HashSet<Person> 集合中。 为此,我们需要实现 Equals()GetHashCode()。 再次,ReSharper 为我们提供了帮助——我们再次调用 生成 命令,并选择 相等性成员。 接下来会显示以下对话框:

ReSharper:生成相等成员

选择生成相等运算符(==!= )以及 IEquatable<T> 的实现选项后,ReSharper 生成了以下代码:

public bool Equals(Person other) { if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; return string.Equals(Name, other.Name) && Age == other.Age; } public override bool Equals(object obj) { if (ReferenceEquals(null, obj)) return false; if (ReferenceEquals(this, obj)) return true; if (obj.GetType() != this.GetType()) return false; return Equals((Person) obj); } public override int GetHashCode() { unchecked { return ((Name != null ? Name.GetHashCode() : 0)*397) ^ Age; } } public static bool operator ==(Person left, Person right) { return Equals(left, right); } public static bool operator !=(Person left, Person right) { return !Equals(left, right); }

3. 生成格式设置成员

现在,我们还希望为一些日志记录和调试获取 ToString() 方法的实现。 再次, 生成 菜单在这里。 我们从菜单中选择 正在设置成员格式 ,选择我们希望出现在 ToString() 中的属性,然后 ReSharper 生成了以下实现:

public override string ToString() { return string.Format("Name: {0}, Age: {1}", Name, Age) }
最后修改日期: 2025年 9月 27日