gpt4 book ai didi

c# - 只使用方法的实现?

转载 作者:行者123 更新时间:2023-12-04 18:00:51 28 4
gpt4 key购买 nike

在 ISerialized 中,Resharper 提示说“只使用了 'SerializeShape 的实现”。还有什么我应该做的,还是在这种情况下我对界面的使用只是过度杀戮?我的“要求”是任何使用类 Shape 实现 SerializeShape。我试图以一种合理的、传统的方式使用接口(interface),但也许我不是?

我有这样的界面:

namespace Shapes
{
internal interface ISerialized<in T>
{
string SerializeShape();

}
}

我有这样的一类:
using System.Runtime.Serialization;
using Newtonsoft.Json;

namespace Shapes
{

[DataContract]
public class Shape : ISerialized<Shape>
{
[DataMember] public double Perimeter { get; set; }
[DataMember] public double Area { get; set; }
[DataMember] public string ShapeName { get; set; }
[DataMember] public string ShapeException { get; set; }

public string SerializeShape(Shape shape)
{
return JsonConvert.SerializeObject(shape, Formatting.Indented);
}
}
}

最佳答案

我知道这是一个老问题,但我遇到了类似的情况。
似乎弹出此警告是因为您没有从外部类(class)中使用它。也许您只是没有创建对它的调用,或者在我的情况下,它仅在实现接口(interface)的类内部使用。
如果在您编写接口(interface)或实现接口(interface)时立即弹出此警告,那么您根本还没有使用该方法。一旦您使用该接口(interface)从其他代码调用该方法,警告就会消失。
就我而言,该方法可能曾一度在类外部使用,但通过代码的迭代,它现在只在内部使用。如果我愿意,我可以从 public 更改方法至private并从接口(interface)中删除方法声明。
旁白:因为我只有一个实现接口(interface)的类,所以我可以完全删除接口(interface),只拥有自己的实现类,这将完全避免这个警告。然而,这个接口(interface)有几个引用,包括自动化测试。删除界面超出了我需要/想要进行的更改的范围,所以我不打算这样做。

关于c# - 只使用方法的实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52344873/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com