使用泛型 ,做计算器
using hnn0731.Domain; //包含在同一命名空間里。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace hnn0731
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("請輸入用戶名:");
String userName = Console.ReadLine();
int count = 0;
while (userName != "admin")
{
count++;
if (count == 3)
{
Console.WriteLine("輸入用戶名錯誤超過三次,將重新進入!");
System.Threading.Thread.Sleep(1000);
}
Console.WriteLine("用戶名錯誤,請重新輸入!!!");
Console.WriteLine("請輸入用戶名:");
userName = Console.ReadLine();
}
Console.WriteLine("請輸入密碼:");
String password = Console.ReadLine();
//int countpass = 0;
while (password != "password")
{
Console.WriteLine("密碼錯誤,請重新輸入!!!");
Console.WriteLine("請輸入密碼:");
password = Console.ReadLine();
}
Console.WriteLine("登陸成功!!!");
int select = 1;
while (select == 1)
{
Console.WriteLine("歡迎進入計算器空間!!!");
Console.WriteLine("請輸入要計算的數字類型:整型選擇1,浮點型選擇2");
int type = Convert.ToInt32(Console.ReadLine());
if (type == 1)
{
Console.WriteLine("請輸入要計算的第一個數字:");
int num1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("請輸入要計算的符號:");
string sigh = Convert.ToString(Console.ReadLine());
Console.WriteLine("請輸入要計算的第二個數字:除數不能為0");
int num2 = Convert.ToInt32(Console.ReadLine());
Test<int> ti = new Test<int>();
switch (sigh)
{
case "+": Console.WriteLine("int:{0}{1}{2}={3}", num1, sigh, num2, ti.add(num1, num2));
break;
case "-": Console.WriteLine("int:{0}{1}{2}={3}", num1, sigh, num2, ti.subdu(num1, num2));
break;
case "*": Console.WriteLine("int:{0}{1}{2}={3}", num1, sigh, num2, ti.multi(num1, num2));
break;
case "/": Console.WriteLine("int:{0}{1}{2}={3}", num1, sigh, num2, ti.divi(num1, num2));
break;
}
//object a = 1;
//Console.WriteLine(a);
//Console.WriteLine(a.GetType());
//Console.WriteLine(a.ToString());
}
else
{
Console.WriteLine("請輸入要計算的第一個數字:");
double num1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("請輸入要計算的符號:");
string sigh = Convert.ToString(Console.ReadLine());
Console.WriteLine("請輸入要計算的第二個數字:");
double num2 = Convert.ToDouble(Console.ReadLine());
Test<double> ti = new Test<double>();
switch (sigh)
{
case "+": Console.WriteLine("double:{0}{1}{2}={3}", num1, sigh, num2, ti.add(num1, num2));
break;
case "-": Console.WriteLine("double:{0}{1}{2}={3}", num1, sigh, num2, ti.subdu(num1, num2));
break;
case "*": Console.WriteLine("double:{0}{1}{2}={3}", num1, sigh, num2, ti.multi(num1, num2));
break;
case "/": Console.WriteLine("double:{0}{1}{2}={3}", num1, sigh, num2, ti.divi(num1, num2));
break;
}
}
Console.WriteLine("是否要繼續使用計算機,是請輸入1,否輸入0");
select = Convert.ToInt32(Console.ReadLine());
}
//Console.ReadKey();
}
}
}
?引用的函數:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace hnn0731.Domain
{
class Test<T>
{
//加法
public T add(T t1, T t2)
{
//object tem1=t1,tem2=t2;
if (t1 is int)
{
object ret = Convert.ToInt32(t1) + Convert.ToInt32(t2);
return (T)ret;
}
else if (t1 is double)
{
object ret = Convert.ToDouble(t1) + Convert.ToDouble(t2);
return (T)ret;
}
return t1;
}
//減法
public T subdu(T t1, T t2)
{
if (t1 is int)
{
object ret = Convert.ToInt32(t1) - Convert.ToInt32(t2);
return (T)ret;
}
else if (t1 is double)
{
object ret = Convert.ToDouble(t1) - Convert.ToDouble(t2);
return (T)ret;
}
return t1;
}
//乘法
public T multi(T t1, T t2)
{
if (t1 is int)
{
object ret = Convert.ToInt32(t1) * Convert.ToInt32(t2);
return (T)ret;
}
else if (t1 is double)
{
object ret = Convert.ToDouble(t1) * Convert.ToDouble(t2);
return (T)ret;
}
return t1;
}
//除法
public T divi(T t1, T t2)
{
if (Convert.ToInt32(t2) != 0)
{
if (t1 is int)
{
object ret = Convert.ToInt32(t1) / Convert.ToInt32(t2);
return (T)ret;
}
// 在 C# 的統一類型系統中,所有類型(預定義類型、用戶定義類型、引用類型和值類型)
//都是直接或間接從 Object 繼承的。可以將任何類型的值賦給 object 類型的變量。
//將值類型的變量轉換為對象的過程稱為“裝箱”。
//將對象類型的變量轉換為值類型的過程稱為“取消裝箱”。
else if (t1 is double) //判斷t1是否為double類型
{
object ret = Convert.ToDouble(t1) / Convert.ToDouble(t2);
return (T)ret;
}
}
else
{
Console.WriteLine("輸入錯誤!!!");
object ret = 0;
return (T)ret;
}
return t1;
}
}
}
轉載于:https://www.cnblogs.com/0280-hnn/p/7264388.html
總結
以上是生活随笔為你收集整理的使用泛型 ,做计算器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 粽叶包的腊肉叫什么?
- 下一篇: phpMyAdmin安装部署