C#初学者在这里。我正在尝试使用Windows窗体来显示秋季任何给定日期(例如,星期五)的给定日期。请记住,我已经在控制台应用程序中完成了所有这些工作,但想尝试Windows窗体。
我的预期结果是,假设我已将索引设置为0,则消息框将显示本月的第一个星期五。
这是我的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DesktopApp7
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public class A
{
public static List<string> meetingdates;
public static string date1 = meetingdates[0];
public void DatesCalculated(string[] args)
{
DateTime timenow = DateTime.Now;
//Creates 2 strings with year and month
string currentyearstr = DateTime.Now.Year.ToString();
string currentmonthstr = DateTime.Now.Month.ToString();
//Turns two strings into integers for further use
int currentyear = int.Parse(currentyearstr);
int selectmonth = int.Parse(currentmonthstr);
//Outputs total days for the current month, Number of times to loop command
var totaldaysinmonth = DateTime.DaysInMonth(currentyear, selectmonth);
//Gives all dates in the month
List<string> meetingdates = new List<string>();
for (int i = 0; i < totaldaysinmonth; i++)
{
DateTime dateofmonth = new DateTime(timenow.Year, timenow.Month, 1 + i);
Calendar mycal = CultureInfo.InvariantCulture.Calendar;
string dayofweek = mycal.GetDayOfWeek(dateofmonth).ToString();
if (dayofweek == "Friday")
{
meetingdates.Add(dateofmonth.Date.ToString("MM/dd"));
}
}
return;
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
MessageBox.Show(A.meetingdates[0]);
}
}
}
运行代码时收到的错误是:
Object reference not set to an instance of an object.
老实说,我不确定如何访问由Main创建的列表,我能够访问文本框部分中的列表,但是我认为这可能仅是因为我在Main外部定义了会议日期列表。
有人可以提供一些有关为何无法正常工作的指导吗?
谢谢!
编辑:我认为链接为重复的问题不能解决使用列表的特定情况。 -