|
|
От: | _NN_ | |
| Дата: | 30.03.25 05:55 | ||
| Оценка: |
|
||
VD>>Напиши плагин к VS 2022 реализующий отображение в коде чисел с разделителями тысяч.
using Microsoft.VisualStudio.DebuggerVisualizers;
using System;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Windows.Forms;
[assembly: DebuggerVisualizer(
typeof(WatchNumberVisualizer),
typeof(VisualizerObjectSource),
Target = typeof(int),
Description = "Formatted Number Visualizer")]
[assembly: DebuggerVisualizer(
typeof(WatchNumberVisualizer),
typeof(VisualizerObjectSource),
Target = typeof(long),
Description = "Formatted Number Visualizer")]
[assembly: DebuggerVisualizer(
typeof(WatchNumberVisualizer),
typeof(VisualizerObjectSource),
Target = typeof(double),
Description = "Formatted Number Visualizer")]
public class WatchNumberVisualizer : DialogDebuggerVisualizer
{
protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
{
object data = objectProvider.GetObject();
string formattedValue = FormatWithSpaces(data);
MessageBox.Show($"Formatted Value:\n{formattedValue}", "Formatted Number Visualizer");
}
private string FormatWithSpaces(object number)
{
if (number is int i)
return i.ToString("N0", CultureInfo.InvariantCulture).Replace(',', ' ');
if (number is long l)
return l.ToString("N0", CultureInfo.InvariantCulture).Replace(',', ' ');
if (number is double d)
return d.ToString("N2", CultureInfo.InvariantCulture).Replace(',', ' ');
return number.ToString();
}
}