解决方案 »
- 关于生成唯一订单号
- 【急急急!关于DataSource属性的设置】我写了一段关于DataSource绑定的代码,有些地方一直搞不懂!请大家帮忙看看这是怎么回事!(↖(^ω^)↗)
- Directory.GetFileSystemEntries 获取顺序的问题
- 这程序错在哪?输入本金和年利润,按一下计算按钮,怎么没反应。
- xml与xsl
- C#中如何把一些文本数据保存成XML文件?
- HttpWebRequest的奇怪问题,我想了N天了,实在想不明白!
- 这个url地址是如何隐藏的?我想得到真实的地址。
- 请问哪里可以下载到清华大学的C#入门经典电子教程
- 用c#将一个数据表导出成excel文件,web方式
- C#如何让程序不获取焦点
- c#如何解析这个json
第二点,从你的类型来看,你program类型里,又包含了2个类型,那么,对于强类型的C#,楼主是没有类型做到一致
第三点,可封箱到program里,再进行加减
代码如下:
namespace 书本例题
{
class Program
{
public class AppleWater //苹果汁
{
public string name;
public string colour;
public string form;
public string taste;
public void show() //显示
{
Console.WriteLine("名称:{0}", name);
Console.WriteLine("颜色:{0}", colour);
Console.WriteLine("形状:{0}", form);
Console.WriteLine("味道:{0}", taste);
Console.WriteLine("********************");
}
}
public class Apple //苹果
{
public string name;
public string colour;
public string form;
public string taste;
public Apple(string name, string colour, string form, string taste)
{
this.name = name;
this.colour = colour;
this.form = form;
this.taste = taste;
}
public Apple()
{
this.name = "苹果";
this.colour = "红色";
this.form = "圆形";
this.taste = "酸甜";
}
public void show() //显示
{
Console.WriteLine("名称:{0}", name);
Console.WriteLine("颜色:{0}", colour);
Console.WriteLine("形状:{0}", form);
Console.WriteLine("味道:{0}", taste);
Console.WriteLine("********************");
}
}
public class Water //水
{
public string name;
public string colour;
public string form;
public string taste;
public Water(string name, string colour, string form, string taste)
{
this.name = name;
this.colour = colour;
this.form = form;
this.taste = taste;
}
public Water()
{
this.name = "水";
this.colour = "无色";
this.form = "无形";
this.taste = "无味";
}
public void show() //显示
{
Console.WriteLine("名称:{0}", name);
Console.WriteLine("颜色:{0}", colour);
Console.WriteLine("形状:{0}", form);
Console.WriteLine("味道:{0}", taste);
Console.WriteLine("********************");
}
public static AppleWater operator +(Apple app, Water wat) //+运算符重载
{ AppleWater appwat = new AppleWater();
if (app.name == "苹果" && wat.name == "水")
{
appwat.name = "苹果汁";
}
else
{
app.name = "匿名";
}
if (app.colour == "红色" || app.name == "青色" && wat.colour == "无色")
{
appwat.colour = "橙色";
}
else
{
appwat.colour = "匿色";
}
if (app.form == "圆形" && wat.form == "无形")
{
appwat.form = "无形";
}
else
{
appwat.form = "匿形";
}
if (app.taste == "酸甜" && wat.taste == "无味")
{
appwat.taste = "酸甜可口";
}
else
{
appwat.taste = "匿味";
}
return appwat;
} } static void Main(string[] args)
{
Apple app = new Apple();
app.show();
Water wat = new Water();
wat.show();
AppleWater appwat = new AppleWater();
appwat = app + wat; //调用+运算符重载
appwat.show();
Console.ReadKey();
}
}
}
运行结果:
名称:苹果
颜色:红色
形状:圆形
味道:酸甜
"********************"
运行结果:
名称:水
颜色:无色
形状:无形
味道:无味
"********************"
运行结果:
名称:苹果汁
颜色:橙色
形状:无形
味道:酸甜可口
"********************"
---------------
感谢 苏小喵 和 极品老土豆 两位大侠!另:1、这个程序代码一定还可以再简化,不知如何优化?
2、封箱在一个program里,进行加减。这句话,我不懂,该怎么理解?