下午路考,一大早就跑出去练车了,回来已经下午5点了。估计是早晨起的太早,从驾校回来一直没什么精神因此也就没有看书。俗话说"一
日不练,三日空“,晚上还是决定写个贪吃蛇的小程序,一来打发一下睡觉前的时间,二来可以熟悉一下C#前面看过的语法和环境,没想到在写
程序的过程中还真发现了不少问题,时间太短,有的解决了有的没解决,现在一一列出:
1. 问题:在写在其它文件中的partial class方法中引用MessageBox.Show(..),程序报告《当前上下文中不存在名称“MessageBox”》错误。
解决方法:就像AfxMessageBox是封装在MFC库中方法一样,MessageBox同样也是存在于System.Windows.Forms空间中的一个类,需要在源代码前面
使 用using加载该命名空间才能使用。
2 问题:任何结构体或类变量在被声明后必须采用new该变量的构造函数来初始化,否则调试程序时编译器会自动报告该部分需要异常处理
List <int> MyList;
MyList.Add(1); //这是错误的
正确使用:
List<int>MyList;
MyList=new List<int>();
MyList.Add(1);
3 问题:C#中利用程序画图也需要确定将要绘图的场景,与VC++中不同的是,VC++中使用设备场景类CDC来描述场景,CDC中保存着相关绘
图的方法。而C#中这个设备场景类被分成了两部分,一部分是实现绘图的方法部分该部分由System空间中的Drawing类实现,第二部分是关于场景
的设置部分,该部分由Graphics类实现。使用的时候可以通过窗口类的对象CreateGraphics()为Graphics对象建立一个在该窗口中绘图的场景(暂时
这么说吧),这样就可以通过Graphics的对象来实现绘图了。例如:
Form1 frm;
Graphics g=frm.CreateGraphics;
Pen MyPen=new Pen(Color.Black);
g.DrawLine(MyPen,1,1,50,50);
System空间中的Drawing类的使用方法待查
4 问题:关于类的访问性的问题。在编写程序时定义了一个类,其中希望其中一个函数可以返回在类中定义List<T>容器(初学不久,感觉
List<T>和STL中的list容器挺像的,暂时也管List叫容器吧),出错的partial class文件中的程序如下:
//变量的声明
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
namespace Snake
{
partial class Snake
{
public List<NODE> GetSnake() {
return EatSnake;
}
private NODE stNode;
private List<NODE> EatSnake;
}
}
编译器报告:
错误 1 可访问性不一致: 返回类型“System.Collections.Generic.List<Snake.Snake.NODE>”比方法“Snake.Snake.GetSnake()”的可访问性低
解决方法:未知,等待CSDN回复
5 问题: 在编写程序的过程中还出现了一次变量未初始化引起的编译错误,通过C#的使用希望能在日后VC下写程序时避免发生同样的错
日不练,三日空“,晚上还是决定写个贪吃蛇的小程序,一来打发一下睡觉前的时间,二来可以熟悉一下C#前面看过的语法和环境,没想到在写
程序的过程中还真发现了不少问题,时间太短,有的解决了有的没解决,现在一一列出:
1. 问题:在写在其它文件中的partial class方法中引用MessageBox.Show(..),程序报告《当前上下文中不存在名称“MessageBox”》错误。
解决方法:就像AfxMessageBox是封装在MFC库中方法一样,MessageBox同样也是存在于System.Windows.Forms空间中的一个类,需要在源代码前面
使 用using加载该命名空间才能使用。
2 问题:任何结构体或类变量在被声明后必须采用new该变量的构造函数来初始化,否则调试程序时编译器会自动报告该部分需要异常处理
List <int> MyList;
MyList.Add(1); //这是错误的
正确使用:
List<int>MyList;
MyList=new List<int>();
MyList.Add(1);
3 问题:C#中利用程序画图也需要确定将要绘图的场景,与VC++中不同的是,VC++中使用设备场景类CDC来描述场景,CDC中保存着相关绘
图的方法。而C#中这个设备场景类被分成了两部分,一部分是实现绘图的方法部分该部分由System空间中的Drawing类实现,第二部分是关于场景
的设置部分,该部分由Graphics类实现。使用的时候可以通过窗口类的对象CreateGraphics()为Graphics对象建立一个在该窗口中绘图的场景(暂时
这么说吧),这样就可以通过Graphics的对象来实现绘图了。例如:
Form1 frm;
Graphics g=frm.CreateGraphics;
Pen MyPen=new Pen(Color.Black);
g.DrawLine(MyPen,1,1,50,50);
System空间中的Drawing类的使用方法待查
4 问题:关于类的访问性的问题。在编写程序时定义了一个类,其中希望其中一个函数可以返回在类中定义List<T>容器(初学不久,感觉
List<T>和STL中的list容器挺像的,暂时也管List叫容器吧),出错的partial class文件中的程序如下:
//变量的声明
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
namespace Snake
{
partial class Snake
{
public List<NODE> GetSnake() {
return EatSnake;
}
private NODE stNode;
private List<NODE> EatSnake;
}
}
编译器报告:
错误 1 可访问性不一致: 返回类型“System.Collections.Generic.List<Snake.Snake.NODE>”比方法“Snake.Snake.GetSnake()”的可访问性低
解决方法:未知,等待CSDN回复
5 问题: 在编写程序的过程中还出现了一次变量未初始化引起的编译错误,通过C#的使用希望能在日后VC下写程序时避免发生同样的错