编程语言
首页 > 编程语言> > c# – Getter / Setter正在崩溃我的代码,但在函数中很好

c# – Getter / Setter正在崩溃我的代码,但在函数中很好

作者:互联网

我想以英国格式返回日期,而不是当前存储的美国格式.

因此,我决定在我班级的值中添加一个getter和setter.

但是,当我使用getter和setter运行代码时,页面无法加载.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

// Globalisation for converting dates from American to British format
using System.Globalization;

/// <summary>
/// Class to hold the summary of an order take from database TOEHEAD
/// </summary>
public class OrderSummary
{

    public string order_number { get; set; }
    public string order_date
    {
        get
        {
            try
            {
                string ukDateTimeFormat = Convert.ToString(DateTime.Parse(this.order_date, CultureInfo.CreateSpecificCulture("en-US")));

                return ukDateTimeFormat;
            }
            catch (FormatException e)
            {
                return "Error";
            }
        }

        set
        {
            this.order_date = value;
        }
    }
    public string order_total { get; set; }

    public OrderSummary()
    {

    }

}

如果我将此代码放入函数并以此方式返回,它可以正常工作.

我格式化了错误吗?

解决方法:

您通过从获取代码调用相同的属性导致堆栈溢出

string ukDateTimeFormat = Convert.ToString(DateTime.Parse(**this.order_date**, CultureInfo.CreateSpecificCulture("en-US")));

你也可以在集合中这样做

this.**order_date** = value;

固定代码:

private string m_order_date;
public string order_date
{
    get
    {
        try
        {
            string ukDateTimeFormat = Convert.ToString(DateTime.Parse(m_order_date, CultureInfo.CreateSpecificCulture("en-US")));

            return ukDateTimeFormat;
        }
        catch (FormatException e)
        {
            return "Error";
        }
    }

    set
    {
        m_order_date = value;
    }
}

标签:c,get,set,globalization,performance
来源: https://codeday.me/bug/20190715/1469492.html