sách gpt4 ăn đã đi

C# 深入 : Type Constraint

In lại Tác giả: Walker 123 更新时间:2023-11-30 21:00:57 24 4
mua khóa gpt4 giày nike

我在深入阅读 C# 时遇到了这个我能理解的内容:

当它被限制为引用类型时,执行的比较类型完全取决于类型参数被限制为什么。

但是不能理解这个:

如果进一步限制派生自重载 == 和 != 运算符的特定类型,则使用这些重载。

如果有人能通过示例来解释这一点,我将不胜感激...... Plzz

câu trả lời hay nhất

==!= 是相等和非相等运算符。

这些可以被不同的类型覆盖 - 在覆盖了它们的类型中,如果用作通用类型约束,则此实现将用于使用这些运算符的比较。

对于您的示例,该行不适用,因为您没有对覆盖 == 的类型的额外约束:

static bool AreReferencesEqual (T first, T second) where T : class
{
return first==second;
}

如果您有这样的类型(也可以继承),那么:

nếu như T 被约束到的类型没有重载 ==,一个简单的引用相等性测试将被完成(默认的 Object实现)。

但是,如果类型确实重载了 ==(比如一个业务实体,如果两个实例具有相同的 nhận dạng,则它们被认为是相同的),将使用该实现,无论您是传入该类型还是继承类型。

考虑一个覆盖== củaPerson 类。以及一种将类型参数限制为 Person 的方法。如果您有一个 Employee 派生自 Person 并且还覆盖了 ==,当在通用中使用 == 时方法,使用的 == 将是 Person 一个。

关于C# 深入 : Type Constraint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14550630/

24 4 0
Walker 123
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress