1、字符串和转义序列
C#在字符串中使用特殊的转义字符表示将他后面的字符区别对待。特殊的转义字符:\
逐字的字符串字符:@告诉VS完全按照出现在双引号标记内的内容来构建字符串。
2、DateTime 引用对象
(1)VS追踪时间的方式
Windows操作系统将维护系统时钟作为他职责的一部分VS用系统时钟来跟踪滴答(Tick)的数量。Tick是100ns为度量的时间单位。1ns是1s的十亿分之一。光在1ns的时间里前进18英寸。
DateTime的对象保存从公元0001年1月1日午夜开始的滴答数量。
(2)DateTime和ToString的转换
有些数据类型允许向ToString方法传递一个参数,因此可以按照特定的方式格式化数据。
实例:
“F”:完整日期和时间,包括s。
“f”:完整日期和时间不包括s。
“D”:完整日期。
“d”:短日期。
“G”:一般日期,包括s。
“g”:一般日期,不包括s。
“T”:完整时间,包括s。
“t”:完整时间,不包括s。
3、示例程序
(1)对C#程序中的一些共同主题的讨论
I.#region和#endregion是C#的程序指令,用于隐藏代码块。其中包含的代码段大多都是vs自动生成的代码段。
II.切断对象链:
this.label1 = new System.Windows.Forms.Label();
如上面的代码,new:创建某种类型的新对象。
.点运算符:进行对象的深层次访问。
III.程序开始执行的方式
public static void Main()
{
frmMain main = new frmMain();
Application.Run(main);
}
所有C#程序都要从一个Main函数开始执行。
表示创建frmMain类的一个新对象。并且运行。
IV.类构造函数
类构造函数:与类同名的方法。
目的:在使用类的对象之前执行需要完成的所有人物。
属性:类构造函数总是与他们出现在其中的类同名。
如果希望实例化该类的对象,构造函数总是会在他们的名称前面使用public
构造函数永远不会同他的调用者返回值。
还有函数签名和重载的概念,同C++一样。
using System;
using System.Windows.Forms;
public class frmMain : Form
{
private Label label1;
private Label label2;
private Label label3;
private Label label4;
private Label label5;
private Label label6;
private Label label7;
private TextBox txtLongDate;
private TextBox txtShortDate;
private TextBox txtGeneralDateAndTime;
private TextBox txtLongTime;
private TextBox txtShortTime;
private TextBox txtDaysToNewYears;
private Button btnRefresh;
private TextBox txtComleteDateAndTime;
private Button btnClose;
#region Windows code
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.txtLongDate = new System.Windows.Forms.TextBox();
this.txtShortDate = new System.Windows.Forms.TextBox();
this.txtGeneralDateAndTime = new System.Windows.Forms.TextBox();
this.txtLongTime = new System.Windows.Forms.TextBox();
this.txtShortTime = new System.Windows.Forms.TextBox();
this.txtDaysToNewYears = new System.Windows.Forms.TextBox();
this.btnRefresh = new System.Windows.Forms.Button();
this.btnClose = new System.Windows.Forms.Button();
this.txtComleteDateAndTime = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// label1
//
this.label1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.label1.Location = new System.Drawing.Point(36, 48);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(178, 23);
this.label1.TabIndex = 0;
this.label1.Text = "Full Date and Time";
this.label1.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// label2
//
this.label2.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.label2.Location = new System.Drawing.Point(36, 93);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(178, 23);
this.label2.TabIndex = 1;
this.label2.Text = "Long Date";
this.label2.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// label3
//
this.label3.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.label3.Location = new System.Drawing.Point(36, 138);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(178, 23);
this.label3.TabIndex = 2;
this.label3.Text = "Short Date";
this.label3.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// label4
//
this.label4.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.label4.Location = new System.Drawing.Point(36, 182);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(178, 23);
this.label4.TabIndex = 3;
this.label4.Text = "General Date and Time";
this.label4.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// label5
//
this.label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.label5.Location = new System.Drawing.Point(36, 222);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(178, 23);
this.label5.TabIndex = 4;
this.label5.Text = "Long Time";
this.label5.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// label6
//
this.label6.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.label6.Location = new System.Drawing.Point(36, 265);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(178, 23);
this.label6.TabIndex = 5;
this.label6.Text = "Short Time";
this.label6.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// label7
//
this.label7.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.label7.Location = new System.Drawing.Point(36, 307);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(178, 23);
this.label7.TabIndex = 6;
this.label7.Text = "Days until New Years Eve";
this.label7.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// txtLongDate
//
this.txtLongDate.Location = new System.Drawing.Point(229, 91);
this.txtLongDate.Multiline = true;
this.txtLongDate.Name = "txtLongDate";
this.txtLongDate.ReadOnly = true;
this.txtLongDate.Size = new System.Drawing.Size(178, 21);
this.txtLongDate.TabIndex = 7;
//
// txtShortDate
//
this.txtShortDate.Location = new System.Drawing.Point(229, 139);
this.txtShortDate.Multiline = true;
this.txtShortDate.Name = "txtShortDate";
this.txtShortDate.ReadOnly = true;
this.txtShortDate.Size = new System.Drawing.Size(178, 21);
this.txtShortDate.TabIndex = 8;
//
// txtGeneralDateAndTime
//
this.txtGeneralDateAndTime.Location = new System.Drawing.Point(229, 182);
this.txtGeneralDateAndTime.Multiline = true;
this.txtGeneralDateAndTime.Name = "txtGeneralDateAndTime";
this.txtGeneralDateAndTime.ReadOnly = true;
this.txtGeneralDateAndTime.Size = new System.Drawing.Size(178, 21);
this.txtGeneralDateAndTime.TabIndex = 9;
//
// txtLongTime
//
this.txtLongTime.Location = new System.Drawing.Point(229, 222);
this.txtLongTime.Multiline = true;
this.txtLongTime.Name = "txtLongTime";
this.txtLongTime.ReadOnly = true;
this.txtLongTime.Size = new System.Drawing.Size(178, 21);
this.txtLongTime.TabIndex = 10;
//
// txtShortTime
//
this.txtShortTime.Location = new System.Drawing.Point(229, 266);
this.txtShortTime.Multiline = true;
this.txtShortTime.Name = "txtShortTime";
this.txtShortTime.ReadOnly = true;
this.txtShortTime.Size = new System.Drawing.Size(178, 21);
this.txtShortTime.TabIndex = 11;
//
// txtDaysToNewYears
//
this.txtDaysToNewYears.Location = new System.Drawing.Point(229, 307);
this.txtDaysToNewYears.Multiline = true;
this.txtDaysToNewYears.Name = "txtDaysToNewYears";
this.txtDaysToNewYears.ReadOnly = true;
this.txtDaysToNewYears.Size = new System.Drawing.Size(178, 21);
this.txtDaysToNewYears.TabIndex = 12;
//
// btnRefresh
//
this.btnRefresh.Location = new System.Drawing.Point(36, 363);
this.btnRefresh.Name = "btnRefresh";
this.btnRefresh.Size = new System.Drawing.Size(105, 23);
this.btnRefresh.TabIndex = 13;
this.btnRefresh.Text = "Refresh";
this.btnRefresh.UseVisualStyleBackColor = true;
this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click);
//
// btnClose
//
this.btnClose.Location = new System.Drawing.Point(298, 363);
this.btnClose.Name = "btnClose";
this.btnClose.Size = new System.Drawing.Size(109, 23);
this.btnClose.TabIndex = 14;
this.btnClose.Text = "Close";
this.btnClose.UseVisualStyleBackColor = true;
this.btnClose.Click += new System.EventHandler(this.button1_Click);
//
// txtComleteDateAndTime
//
this.txtComleteDateAndTime.Location = new System.Drawing.Point(229, 49);
this.txtComleteDateAndTime.Multiline = true;
this.txtComleteDateAndTime.Name = "txtComleteDateAndTime";
this.txtComleteDateAndTime.ReadOnly = true;
this.txtComleteDateAndTime.Size = new System.Drawing.Size(178, 21);
this.txtComleteDateAndTime.TabIndex = 15;
//
// frmMain
//
this.ClientSize = new System.Drawing.Size(431, 436);
this.Controls.Add(this.txtComleteDateAndTime);
this.Controls.Add(this.btnClose);
this.Controls.Add(this.btnRefresh);
this.Controls.Add(this.txtDaysToNewYears);
this.Controls.Add(this.txtShortTime);
this.Controls.Add(this.txtLongTime);
this.Controls.Add(this.txtGeneralDateAndTime);
this.Controls.Add(this.txtShortDate);
this.Controls.Add(this.txtLongDate);
this.Controls.Add(this.label7);
this.Controls.Add(this.label6);
this.Controls.Add(this.label5);
this.Controls.Add(this.label4);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Name = "frmMain";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
//#region是C# 预处理器指令。
//#region 使您可以在使用 Visual Studio
//代码编辑器的大纲显示功能时指定可展开或折叠的代码块。
public frmMain()
{
InitializeComponent();
UpdateTimeInfo();
}
public static void Main()
{
frmMain main = new frmMain();
Application.Run(main);
}
private void UpdateTimeInfo()
{
int days;
DateTime myTime = new DateTime();
myTime=DateTime.Now;
DateTime newYears = new DateTime(myTime.Year,12,31);
txtComleteDateAndTime.Text = myTime.ToString("f");
txtLongDate.Text = myTime.ToString("D");
txtShortDate.Text = myTime.ToString("d");
txtGeneralDateAndTime.Text= myTime.ToString("g");
txtLongTime.Text = myTime.ToString("T");
txtShortTime.Text = myTime.ToString("t");
days = newYears.DayOfYear - myTime.DayOfYear;
txtDaysToNewYears.Text = days.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
Close();
}
private void btnRefresh_Click(object sender, EventArgs e)
{
UpdateTimeInfo();
}
}