以下代码为何编译不过,我用的是VC2003.NETusing System;
using System.Collections.Generic;
using System.Text;namespace Huaquan
{ /// <summary>
/// 酒鬼类
/// </summary>
public abstract class Drunkard
{
abstract public void Come(out int AFinger, out int ASum); abstract public void Outcome(int AOtherFinger, int AOtherSum, Result AOtherResult,
int ASelfFinger, int ASelfSum, Result ASelfResult);
} public class Zswang一号 : Drunkard
{
public override void Come(out int AFinger, out int ASum)
{
AFinger = 5; // 每次都出5
ASum = 10; // 每次都猜10
} public override void Outcome(int AOtherFinger, int AOtherSum, Result AOtherResult,
int ASelfFinger, int ASelfSum, Result ASelfResult)
{
/* 这机器人不关心比赛结果 */
}
} public class Zswang二号 : Drunkard
{
private Random random;
public Zswang二号()
{
random = new Random();
} public override void Come(out int AFinger, out int ASum)
{
ASum = random.Next(10 + 1); //0-10
if (ASum < 5) // 别犯规
AFinger = random.Next(ASum + 1);
else AFinger = random.Next(ASum - 5, 5 + 1);
} public override void Outcome(int AOtherFinger, int AOtherSum, Result AOtherResult,
int ASelfFinger, int ASelfSum, Result ASelfResult)
{
/* 这机器人也不关心比赛结果 */
}
} /// <summary>
/// 酒馆类
/// </summary>
/// <typeparam name="T1">划拳机器人1</typeparam>
/// <typeparam name="T2">划拳机器人2</typeparam>
public class Drunkery<T1, T2>
where T1 : Drunkard, new()
where T2 : Drunkard, new()
{
public void Play()
{
;
}
} class Program
{
static void Main(string[] args)
{
new Drunkery<Zswang一号, Zswang二号>().Play();
}
}
}
------ 已启动生成: 项目: ProjectTest, 配置: Debug .NET ------正在准备资源...
正在更新引用...
正在执行主编译...
d:\workspace\projecttest\codefile1.cs(77,23): error CS1514: 应输入 {
d:\workspace\projecttest\codefile1.cs(77,26): error CS1519: 类、结构或接口成员声明中的标记“,”无效
d:\workspace\projecttest\codefile1.cs(77,30): error CS1519: 类、结构或接口成员声明中的标记“>”无效
d:\workspace\projecttest\codefile1.cs(78,12): error CS1002: 应输入 ;
d:\workspace\projecttest\codefile1.cs(78,22): error CS1519: 类、结构或接口成员声明中的标记“,”无效
d:\workspace\projecttest\codefile1.cs(78,27): error CS1031: 应输入类型
d:\workspace\projecttest\codefile1.cs(79,12): error CS1002: 应输入 ;
d:\workspace\projecttest\codefile1.cs(79,22): error CS1519: 类、结构或接口成员声明中的标记“,”无效
d:\workspace\projecttest\codefile1.cs(79,27): error CS1031: 应输入类型生成完成 -- 9 个错误,0 个警告
正在生成附属程序集...
由于缺少主项目输出,未能生成附属程序集。
---------------------- 完成 --------------------- 生成: 0 已成功, 1 已失败, 0 已跳过
using System.Collections.Generic;
using System.Text;namespace Huaquan
{ /// <summary>
/// 酒鬼类
/// </summary>
public abstract class Drunkard
{
abstract public void Come(out int AFinger, out int ASum); abstract public void Outcome(int AOtherFinger, int AOtherSum, Result AOtherResult,
int ASelfFinger, int ASelfSum, Result ASelfResult);
} public class Zswang一号 : Drunkard
{
public override void Come(out int AFinger, out int ASum)
{
AFinger = 5; // 每次都出5
ASum = 10; // 每次都猜10
} public override void Outcome(int AOtherFinger, int AOtherSum, Result AOtherResult,
int ASelfFinger, int ASelfSum, Result ASelfResult)
{
/* 这机器人不关心比赛结果 */
}
} public class Zswang二号 : Drunkard
{
private Random random;
public Zswang二号()
{
random = new Random();
} public override void Come(out int AFinger, out int ASum)
{
ASum = random.Next(10 + 1); //0-10
if (ASum < 5) // 别犯规
AFinger = random.Next(ASum + 1);
else AFinger = random.Next(ASum - 5, 5 + 1);
} public override void Outcome(int AOtherFinger, int AOtherSum, Result AOtherResult,
int ASelfFinger, int ASelfSum, Result ASelfResult)
{
/* 这机器人也不关心比赛结果 */
}
} /// <summary>
/// 酒馆类
/// </summary>
/// <typeparam name="T1">划拳机器人1</typeparam>
/// <typeparam name="T2">划拳机器人2</typeparam>
public class Drunkery<T1, T2>
where T1 : Drunkard, new()
where T2 : Drunkard, new()
{
public void Play()
{
;
}
} class Program
{
static void Main(string[] args)
{
new Drunkery<Zswang一号, Zswang二号>().Play();
}
}
}
------ 已启动生成: 项目: ProjectTest, 配置: Debug .NET ------正在准备资源...
正在更新引用...
正在执行主编译...
d:\workspace\projecttest\codefile1.cs(77,23): error CS1514: 应输入 {
d:\workspace\projecttest\codefile1.cs(77,26): error CS1519: 类、结构或接口成员声明中的标记“,”无效
d:\workspace\projecttest\codefile1.cs(77,30): error CS1519: 类、结构或接口成员声明中的标记“>”无效
d:\workspace\projecttest\codefile1.cs(78,12): error CS1002: 应输入 ;
d:\workspace\projecttest\codefile1.cs(78,22): error CS1519: 类、结构或接口成员声明中的标记“,”无效
d:\workspace\projecttest\codefile1.cs(78,27): error CS1031: 应输入类型
d:\workspace\projecttest\codefile1.cs(79,12): error CS1002: 应输入 ;
d:\workspace\projecttest\codefile1.cs(79,22): error CS1519: 类、结构或接口成员声明中的标记“,”无效
d:\workspace\projecttest\codefile1.cs(79,27): error CS1031: 应输入类型生成完成 -- 9 个错误,0 个警告
正在生成附属程序集...
由于缺少主项目输出,未能生成附属程序集。
---------------------- 完成 --------------------- 生成: 0 已成功, 1 已失败, 0 已跳过
解决方案 »
- 用户在等待时,怎样在界面上显示一个图片?
- 对于一维字符串数组str,不进行遍历该数组,如何直接判断字符串"istag"是否是str中的一个数组元素
- 如何这样实现绑定
- 一直搞不明白属性的概念。。。到底有什么作用?
- 在asp.net里面,怎么实现与在页面中 右键->刷新 功能等同的代码?
- C#中如何实现Panel随着控件的增多而自动滚动?
- 有没有MVP在啊,真的很奇怪的问题。
- 怎么用csc编译*.cs文件阿?
- C#加载一个非常简单的xml文件竟然抛出异常了,为什么?
- 获取缓存行数 缓存是没问题的 问什么 会报错呢
- 有关菜单栏中实现HTML帮助的问题?? 高手帮帮忙
- 求C#写的无限级菜单(不用TreeView控件)!
/// 酒馆类
/// </summary>
/// <typeparam name="T1">划拳机器人1</typeparam>
/// <typeparam name="T2">划拳机器人2</typeparam>
public class Drunkery<T1, T2>
where T1 : Drunkard, new()
where T2 : Drunkard, new()
{
public void Play()
{
;
}
}
//由于泛型属于VS2005对应VS2003的新特性,须在VS2005中方可运行通过
public class Drunkery<T1, T2>
where T1 : Drunkard, new()
where T2 : Drunkard, new()
{
public void Play()
{
;
}
}
先以object类型放在ArrayList中
需要的时候在强制转换