最近需要使用C#和javascript进行虚拟平台的搭建与学习,故索性将其学习,只能说快速入门,后期的提高需要结合项目来补充。
首先介绍一下什么是虚拟现实平台,简单来说,就是通过在网页来模拟某项操作,例如计算机硬件拆卸实验或编码操作实验等等。下图是我校内部虚拟实验平台,里面有众多的实验库。
下面的所有关于C#基础知识不再赘述,例如循环结构、面向对象设计均不再叙述,有兴趣可以看我前面java教程,(相信你一定可以的嗷!)这里就直接开始应用实例了。
你的三连就是我更新的最大动力。
附下面所有代码链接,后期还有很多工作以此为例,例如架构数据库建立后端数据等。
(百度网盘)链接:链接
提取码:el1j
而我目前的工作也就是搭建这样的平台,需要用到Unity 2020,Csharp,Node.js,MySQL 等知识。所以这里以后将进行学习。
Csharp是一门面向对象的编程语言,它与 Java 非常相似(此次java笔记),有许多强大的编程功能,因此得到广大程序员的青睐。
时间有限,这里详细的内容就不在赘述,这里直接附代码进行说明。
别的不说,看框架就好。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
}
多的语法结构啊,面向对象等知识不再重复(详见java版块,语法几乎一致),这里直接开始窗体应用程序。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HelloWorld
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//设置本窗体的标题文字
this.Text = "第一个Windows程序";
//创建标签控件,设置属性
Label lblshow = new Label();
lblshow.Location = new Point(50, 60);
lblshow.AutoSize = true;
lblshow.Text = "Hello world";
this.Controls.Add(lblshow);
}
}
}
private void label1_Click(object sender, EventArgs e)
{
//定义字符串常量
string strResult;
//提取在文本框中的文字
strResult = textBox1.Text + ",你好欢迎使用本程序!";
//显示结果
label2.Text = strResult;
}
using System表示引入System命名空间中的类。System命名空间是.NET最基本的命名空间,包含了最基本的类和声明。如果不使用System命名空间,源代码将无法编译。
C#是完全面向对象的语言,必须要放到类中,一个程序至少包含一个类。
主要方法代码
private void btnFont_Click(object sender, EventArgs e)
{
fontDialog1.Font = richTextBox1.Font;
if (fontDialog1.ShowDialog() == DialogResult.OK)
{
richTextBox1.Font = fontDialog1.Font;
}
}
private void btnColor_Click(object sender, EventArgs e)
{
colorDialog1.Color = richTextBox1.ForeColor;
if (colorDialog1.ShowDialog() == DialogResult.OK)
{
richTextBox1.ForeColor = colorDialog1.Color;
}
}
主要方法
private void btnLogin_Click(object sender, EventArgs e)
{
string userName = txtName.Text;
string password = txtPwd.Text;
if (userName == "admin" && password == "123")
{
MessageBox.Show("欢迎进入个人理财系统!", "登录成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("您输入的用户名或密码错误!", "登录失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
private void btnCancel_Click(object sender, EventArgs e)
{
txtName.Text = "";
txtPwd.Text = "";
txtName.Focus();
}
主要方法
private void rdoExpenditure_CheckedChanged(object sender, EventArgs e)
{
cboCategory.Items.Clear();//清除组合框所有项
if (rdoExpenditure.Checked == true)
{
cboCategory.Items.Add("生活消费");
cboCategory.Items.Add("固定资产");
cboCategory.Items.Add("休闲娱乐");
cboCategory.Items.Add("医疗药品");
cboCategory.Items.Add("教育培训");
cboCategory.Items.Add("其他支出");
}
else
{
cboCategory.Items.Add("工作收入");
cboCategory.Items.Add("投资收益");
cboCategory.Items.Add("其他收入");
}
cboCategory.SelectedIndex = 0;
}
private void cboCategory_SelectedIndexChanged(object sender, EventArgs e)
{
lstItem.Items.Clear();
switch (cboCategory.SelectedItem.ToString())
{
case "生活消费":
lstItem.Items.Add("餐饮");
lstItem.Items.Add("生活用品");
break;
case "固定资产":
lstItem.Items.Add("服装");
lstItem.Items.Add("家用电器");
break;
case "休闲娱乐":
lstItem.Items.Add("旅游");
break;
case "医疗药品":
lstItem.Items.Add("药品");
break;
case "教育培训":
lstItem.Items.Add("学费");
break;
case "工作收入":
lstItem.Items.Add("工资");
break;
case "投资收益":
lstItem.Items.Add("利息");
break;
}
cboCategory.SelectedIndex = 0;
}
btnSave保存在文本框中,后续会写入到数据库中
private void btnSave_Click(object sender, EventArgs e)
{
rtxtRemarks.Clear();
rtxtRemarks.AppendText("要保存的信息为:\n");
rtxtRemarks.AppendText(cboCategory.SelectedItem.ToString());
rtxtRemarks.AppendText("-");
rtxtRemarks.AppendText(lstItem.SelectedItem.ToString());
rtxtRemarks.AppendText("\n日期");
rtxtRemarks.AppendText(dtpDate.Value.ToLongDateString());
rtxtRemarks.AppendText("\n说明");
rtxtRemarks.AppendText(txtExplain.Text);
rtxtRemarks.AppendText("\n收支人");
if (chkOwn.Checked) rtxtRemarks.AppendText(chkOwn.Text);
if (chkFamily.Checked) rtxtRemarks.AppendText("、"+chkFamily.Text);
if (chkFriend.Checked) rtxtRemarks.AppendText("、" + chkFriend.Text);
if (chkColleague.Checked) rtxtRemarks.AppendText("、" + chkColleague.Text);
if (chkRelative.Checked) rtxtRemarks.AppendText("、" + chkRelative.Text);
if (chkOther.Checked) rtxtRemarks.AppendText("、" + chkOther.Text);
rtxtRemarks.AppendText("\n金额");
rtxtRemarks.AppendText(numAmount.Value.ToString());
}
主要方法代码
private void btnYes_Click(object sender, EventArgs e)
{
this.Close();
}
主要方法代码:
private void rdoExpenditure_CheckedChanged(object sender, EventArgs e)
{
cboCategory.Items.Clear();
cboCategory.Items.Add("一级大类");
if (rdoExpenditure.Checked == true)
{
cboCategory.Items.Add("生活消费");
cboCategory.Items.Add("固定资产");
cboCategory.Items.Add("休闲娱乐");
cboCategory.Items.Add("医疗药品");
cboCategory.Items.Add("教育培训");
cboCategory.Items.Add("其他收入");
}
else
{
cboCategory.Items.Add("工作收入");
cboCategory.Items.Add("投资收益");
cboCategory.Items.Add("其他收入");
}
cboCategory.SelectedIndex = 0;
}
private void btnPreview_Click(object sender, EventArgs e)
{
if (txtName.Text.Trim() == string.Empty)
{
MessageBox.Show("请填写收支项目名称!", "信息不完整", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else tabControl1.SelectedTab = tabPage2;
}
private void cboCategory_SelectedIndexChanged(object sender, EventArgs e)
{
if (tabControl1.SelectedIndex == 1)
{
if (txtName.Text.Trim() == string.Empty)
{
MessageBox.Show("请填写收支项目名称!", "信息不完整", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);MessageBox.Show("请填写收支项目名称!", "信息不完整", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else
{
rtxtMsg.Clear();
rtxtMsg.AppendText("要添加的收支项目为:");
rtxtMsg.AppendText(txtName.Text);
rtxtMsg.AppendText("\n所属类别:" + cboCategory.SelectedItem.ToString());
if (rdoExpenditure.Checked == true) rtxtMsg.AppendText("\n是支出类型的项目");
else rtxtMsg.AppendText("\n是收入类型的项目");
}
}
}
附主要方法代码
private void 退出XToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void MainFrm_Load(object sender, EventArgs e)
{
}
private void 添加收支项目IToolStripMenuItem_Click(object sender, EventArgs e)
{
AddItems AddItemsFrm = new AddItems();
AddItemsFrm.MdiParent = this;
AddItemsFrm.Show();
}
private void tsmAddExp_Click(object sender, EventArgs e)
{
AddExpenditure AddExpFrm = new AddExpenditure();
AddExpFrm.MdiParent = this;
AddExpFrm.Show();
}
private void tsmAbout_Click(object sender, EventArgs e)
{
AboutForm aboutForm = new AboutForm();
aboutForm.MdiParent = this;
aboutForm.Show();
}
private void tsmStatistics_Click(object sender, EventArgs e)
{
}
private void tsmUser_Click(object sender, EventArgs e)
{
Login loginForm = new Login();
loginForm.MdiParent = this;
loginForm.Show();
}
和前面的进行结合,做成了以下的运行结果
至此关于C#的语法已告一段落,UI界面设计已完成,后面就是后端的事啦,赶紧得补一补数据库的知识了(流泪ing)。