【C#】【平时作业】习题-6-静态成员
习题-6静态成员
一、概念题
1. 什么是静态成员
被static修饰的成员,叫做静态成员。静态成员是属于类的。通过类名直接访问。
- 当类第一次被访问的时候,就会将这个类下面的所有的静态成员创建在内存当中。
- 静态成员既不在栈也不在堆中。创建在静态存储区。
- 静态成员只创建一次,在类第一次被访问的时候创建。
- 静态成员一旦被创建在静态存储区,那么就不会被回收,直到程序结束。
class Person
{
//静态成员
public static int Age;
//实例成员
public string Name;
}
class Program
{
static void Main(string[] args)
{
//静态成员属于类,直接通过 类名.静态成员 来访问
int age = Person.Age;
//实例成员属于对象,需要通过 对象名.实例成员 来访问
Person p = new Person();
p.Name = "Jack";
}
}
2. 什么是方法重载
在面向对象的语言中,允许我们在同一个类中定义多个方法名相同、参数列表(参数类型,参数个数)不同的方法,这样的形式我们称为方法重载。调用时编译器会根据实际传入参数的形式,选择与其匹配的方法执行。
二、 程序设计
设计计算器类,实现加法和减法功能。
要求:
参与计算的操作数可以是两个int;两个double,两个float
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 WinFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
cbOperater.SelectedIndex = 0;
cbOperater.Width = 49;
cbOperater.Height = 28;
}
private void btCalc_Click(object sender, EventArgs e)
{
int op1Int;
int op2Int;
float op1Float;
float op2Float;
double op1Double;
double op2Double;
decimal op1Decimal;
decimal op2Decimal;
if (tb1.Text.Trim() == "" || tb2.Text.Trim() == "")
{
MessageBox.Show("请输入数字!");
}
else
{
if (int.TryParse(tb1.Text, out op1Int) & int.TryParse(tb2.Text, out op2Int))
{
switch (cbOperater.SelectedItem.ToString())
{
case "+": { lblResult.Text = Calc.Add(op1Int, op2Int).ToString(); } break;
case "-": { lblResult.Text = Calc.Sub(op1Int, op2Int).ToString(); } break;
case "*": { lblResult.Text = Calc.Cheng(op1Int, op2Int).ToString(); } break;
case "/": { lblResult.Text = Calc.Chu(op1Int, op2Int).ToString(); } break;
default: { MessageBox.Show("请选择合理计算方式"); } break;
}
}
else
{
if (float.TryParse(tb1.Text, out op1Float) & float.TryParse(tb2.Text, out op2Float))
{
switch (cbOperater.SelectedItem.ToString())
{
case "+": { lblResult.Text = Calc.Add(op1Float, op2Float).ToString(); } break;
case "-": { lblResult.Text = Calc.Sub(op1Float, op2Float).ToString(); } break;
case "*": { lblResult.Text = Calc.Cheng(op1Float, op2Float).ToString(); } break;
case "/": { lblResult.Text = Calc.Chu(op1Float, op2Float).ToString(); } break;
default: { MessageBox.Show("请选择合理计算方式"); } break;
}
}
else
{
if (double.TryParse(tb1.Text, out op1Double) & double.TryParse(tb2.Text, out op2Double))
{
switch (cbOperater.SelectedItem.ToString())
{
case "+": { lblResult.Text = Calc.Add(op1Double, op2Double).ToString(); } break;
case "-": { lblResult.Text = Calc.Sub(op1Double, op2Double).ToString(); } break;
case "*": { lblResult.Text = Calc.Cheng(op1Double, op2Double).ToString(); } break;
case "/": { lblResult.Text = Calc.Chu(op1Double, op2Double).ToString(); } break;
default: { MessageBox.Show("请选择合理计算方式"); } break;
}
}
else
{
if (decimal.TryParse(tb1.Text, out op1Decimal) & decimal.TryParse(tb2.Text, out op2Decimal))
{
switch (cbOperater.SelectedItem.ToString())
{
case "+": { lblResult.Text = Calc.Add(op1Decimal, op2Decimal).ToString(); } break;
case "-": { lblResult.Text = Calc.Sub(op1Decimal, op2Decimal).ToString(); } break;
case "*": { lblResult.Text = Calc.Cheng(op1Decimal, op2Decimal).ToString(); } break;
case "/": { lblResult.Text = Calc.Chu(op1Decimal, op2Decimal).ToString(); } break;
default: { MessageBox.Show("请选择合理计算方式"); } break;
}
}
else {
MessageBox.Show("数据类型不统一!");
}
}
}
}
}
}
private void label1_Click(object sender, EventArgs e)
{
}
private void tb2_TextChanged(object sender, EventArgs e)
{
}
private void cbOperater_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
Random ran = new Random();
tb_show.Text += "恭喜用户"+ ran.Next(100, 999).ToString()+"***"+ ran.Next(100, 999).ToString()+"中奖";
}
}
}
版 权 声 明