String Class: создайте новый метод, который возвращает qlDate

Здесь у меня есть пример кода. Моя цель - создать метод, который возвращает ql.Date из String, Является ли это возможным? Я установил строку даты из Excel. Но приложение должно получить ql.Date(), Теперь я написал для любой даты метод возврата. Что довольно не элегантно.

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        MyClass myClass = new MyClass();
        myClass.Date1 = "08/04/2023";
        myClass.Date2 = "05/25/2012";
        // get would return a String, but I need the Date. 
        // So I call the method to get the Date:
        QuantLib.Date qlDate1 = myClass.returnQLDate1();
        QuantLib.Date qlDate2 = myClass.returnQLDate2();
        //My goal is a general method for all Dates (Date1, Date2, Date3,...) 
        // like this:
        QuantLib.Date qlDateX = myClass.DateX.toQLDate();
    }
}

Мои занятия:

public class MyClass
{
    string _Date1, _Date2; //string _Date3,...Date6,...double _rate, _cpn;
    public string Date1
    {
        private get { return _Date1; }
        set { _Date1 = value; }
    }

    public string Date2
    {
        private get { return _Date2; }
        set { _Date2 = value; }
    }

    public QuantLib.Date returnQLDate1()
    { return new QuantLib.Date(Date1, "mm/dd/yyyy"); }
    public QuantLib.Date returnQLDate2()
    { return new QuantLib.Date(Date2, "mm/dd/yyyy"); }
    //  public QuantLib.Date returnQLDate3()
    //  { return....       
}

1 ответ

Решение

Вы можете создать метод расширения (конечно, название спорно)

public static QuantLib.Date ToQuantLibDate(this string value)
{
    return new QuantLib.Date(value, "mm/dd/yyyy"); }
}

Использование:

var str = "08/04/2023";
var date = str.ToQuantLibDate();
Другие вопросы по тегам