C#-显示winform中的过时警告,并具有时间戳

本文关键字:时间戳 警告 过时 显示 winform C#- | 更新日期: 2023-09-27 18:20:37

我想知道是否有一种方法可以在将方法标记为过时时应用日期?我对日期的意思是,这个日期代表了应该永远删除这个函数的"日期"。

还有一个NooB问题,有没有一种方法可以使用MessageBox.show()在winform中显示错误/警告消息
这意味着当在这个:

[ObsoleteAttribute("This class is obsolete; use class B instead")]

有什么方法可以调用ObsoleteAttribute的Message函数吗?

代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        [ObsoleteAttribute("This class is obsolete; use class B instead")]
        class A
        {
            public void F() { }
        }
        class B
        {
            public void F() { }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            A a = new A();       // Warning
            a.F();
        }
        private void button2_Click(object sender, EventArgs e)
        {
            B b = new B();
            b.F();
        }
    }
}

C#-显示winform中的过时警告,并具有时间戳

为您的过时设置日期不是一个好主意。总有一些东西会拖延事情。另外,在删除过时元素之前,您可能需要检查它的使用情况。也许有些人忽略了您的警告。也许每个人都这么做了。你真的想仅仅因为日历上的一天已经到来就破坏他们所有的代码吗?

因此,由于这不是一个好主意,因此不支持。当然,你可以在报废警告文本中写一个日期。

为了回答您的第二个问题,这是如何在运行时访问过时警告文本,以便将其显示为消息框。

ObsoleteAttribute attribute = typeof(A).GetCustomAttribute<ObsoleteAttribute>();
if (attribute != null)
{
    MessageBox.Show(attribute.Message);
}

但请注意,这确实是对过时概念的滥用。过时是程序员的警告,而不是最终用户的警告。最终用户并不关心运行中的代码有多过时或被弃用,他只希望自己的程序能够正常工作。确保这种情况发生是程序员的职责。因此,程序员在编译时会收到警告消息。用户不应该为此而烦恼。