如何在API中显示未实现的方法,不抛出异常并阻止编译
本文关键字:抛出异常 编译 方法 API 显示 实现 | 更新日期: 2023-09-27 17:57:53
我正在编写一个核心API,供客户端开发人员使用。
有些方法还没有开发出来,但我需要它们在API中,这样开发人员就可以从智能的角度看到它们。
除了我提供给开发人员的API文档外,我还需要他在开发过程中知道一个方法尚未实现,但它已经存在。
有没有一种方法可以在不抛出NotImplementedException的情况下通知开发人员该方法尚未实现,如果他将尝试使用该方法,则不会编译该方法?
例如:
public class API
{
public void PrintToPDF()
{
// do not throw NotImplementedException
}
}
public class Client
{
public void Print()
{
API api = new API();
api.PrintToPDF(); // shouldn't compiled but can be see in intellisense. It can show a tooltip that it is in being developed.
}
}
使用过时的属性,它可以在定义时生成警告或错误。
using System;
using System.Reflection;
public class Example
{
// Mark OldProperty As Obsolete.
[ObsoleteAttribute("This property is for future use", false)]
public static string OldProperty
{ get { return "The old property value."; } }
public static string NewProperty
{ get { return "The new property value."; } }
// Mark CallOldMethod As Obsolete.
[ObsoleteAttribute("This method is for future use", true)]
public static string CallOldMethod()
{
return "You have called CallOldMethod.";
}
public static string CallNewMethod()
{
return "You have called CallNewMethod.";
}
public static void Main()
{
Console.WriteLine(OldProperty);
Console.WriteLine();
Console.WriteLine(CallOldMethod());
}
}
// The attempt to compile this example produces output like the following output:
// Example.cs(31,25): error CS0619: 'Example.CallOldMethod()' is obsolete:
// 'This method is for future use'
// Example.cs(29,25): warning CS0618: 'Example.OldProperty' is obsolete:
// 'This property is for future use'
您也可以创建自己的属性。
[Obsolete("Reserved for future use", true)]
public class ReservedForFutureUse : System.Attribute
{
}
您可以使用过时的属性:
public class API
{
[Obsolete("This isn't yet implemented")]
public void PrintToPDF()
{
// do not throw NotImplementedException
}
}
它不会在编译时生成错误,但会生成警告:
1>Example.cs(31,17,31,33): warning CS0618: 'API.PrintToPDF()' is obsolete: 'This isn't yet implemented'