日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用泛型 ,做计算器

發(fā)布時間:2025/5/22 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用泛型 ,做计算器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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("輸入用戶名錯誤超過三次,將重新進(jìn)入!");
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("歡迎進(jìn)入計(jì)算器空間!!!");
Console.WriteLine("請輸入要計(jì)算的數(shù)字類型:整型選擇1,浮點(diǎn)型選擇2");
int type = Convert.ToInt32(Console.ReadLine());


if (type == 1)
{
Console.WriteLine("請輸入要計(jì)算的第一個數(shù)字:");
int num1 = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("請輸入要計(jì)算的符號:");
string sigh = Convert.ToString(Console.ReadLine());

Console.WriteLine("請輸入要計(jì)算的第二個數(shù)字:除數(shù)不能為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("請輸入要計(jì)算的第一個數(shù)字:");
double num1 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("請輸入要計(jì)算的符號:");
string sigh = Convert.ToString(Console.ReadLine());

Console.WriteLine("請輸入要計(jì)算的第二個數(shù)字:");
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("是否要繼續(xù)使用計(jì)算機(jī),是請輸入1,否輸入0");
select = Convert.ToInt32(Console.ReadLine());
}
//Console.ReadKey();
}

}
}

?引用的函數(shù):

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# 的統(tǒng)一類型系統(tǒng)中,所有類型(預(yù)定義類型、用戶定義類型、引用類型和值類型)
//都是直接或間接從 Object 繼承的。可以將任何類型的值賦給 object 類型的變量。
//將值類型的變量轉(zhuǎn)換為對象的過程稱為“裝箱”。
//將對象類型的變量轉(zhuǎn)換為值類型的過程稱為“取消裝箱”。
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;

}
}

}

轉(zhuǎn)載于:https://www.cnblogs.com/0280-hnn/p/7264388.html

總結(jié)

以上是生活随笔為你收集整理的使用泛型 ,做计算器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。