小编Unu*_*ays的帖子

C#10 不清楚的 CS8600 警告

我目前正在将 Blazor 项目迁移到 C# 10 附带的 .NET6。使用新语言版本时,我收到包含以下代码的警告:

if (tmp is null)
    oldValue = "";
else
    oldValue = tmp.ToString();
Run Code Online (Sandbox Code Playgroud)

警告是:CS8600“将 null 文字或可能的 null 值转换为不可为 null 的类型”。 tmp属于 类型object?。这就是我在 if 子句中检查它是否为空的原因。我注意到出现了很多这种类型的警告。

那么这背后的原因是什么呢?帮助页面尚不包含任何信息。(看这里

c# blazor c#-10.0

13
推荐指数
1
解决办法
2万
查看次数

C#用一个属性满足两个接口的成员

问题来源:我有一个通用组件来显示数据。数据可能来自不同的数据模型。为了统一组件内部的访问,我创建了一个IOne由所有类实现的接口。为了从应用程序中抽象出数据访问层,我为每个数据模型使用了接口。因此,每个数据显示模型都实现了该IOne接口以及另外一个数据模型接口。接口:

public interface IOne
{
    public int idNameOne { get; set; }
}

public interface DataModelOne
{
    public int anotherNameForId{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在我的班级中,我希望两个成员都对一个属性感到满意。我目前的解决方案如下:

public class Implementation : IOne, DataModelOne
{
    private int _id; 
    public idNameOne { get { return _id; } set { _id = value; } }
    public anotherIdName { get { return _id; } set { _id = value; } }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法声明一个属性同时满足两个成员?什么是干净的解决方案?

c#

0
推荐指数
1
解决办法
72
查看次数

标签 统计

c# ×2

blazor ×1

c#-10.0 ×1