int与void

martionch 2008-04-22 10:11:24
static int Main()与static void Main()
之间有什么差别..除了类型上..
...全文
85 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ericzhangbo1982111 2008-04-22
  • 打赏
  • 举报
回复
C# 编程指南
Main() 返回值(C# 编程指南)
Main 方法可以是 void 类型:

C# 复制代码
static void Main()
{
//...
}



它还可以返回 int:

C# 复制代码
static int Main()
{
//...
return 0;
}



如果不需要使用 Main 的返回值,则返回 void 可以使代码变得略微简单。但是,返回整数可使程序将状态信息与调用该可执行文件的其他程序或脚本相关。下面的示例演示使用 Main 的返回值。

示例
在此示例中,使用了一个批处理文件来执行程序并测试 Main 函数的返回值。在 Windows 中执行程序时,Main 函数返回的任何值都将存储在名为 ERRORLEVEL 的环境变量中。通过检查 ERRORLEVEL 变量,批处理文件可以确定执行的结果。通常,返回值为零指示执行成功。下面是一个非常简单的程序,其 Main 函数返回零。

C# 复制代码
class MainReturnValTest
{
static int Main()
{
//...
return 0;
}
}



由于此示例使用了批处理文件,因此最好从命令行编译这段代码,如如何:设置环境变量中所示。

然后,使用批处理文件调用前面的代码示例所生成的可执行文件。由于代码返回零,因此批处理文件将报告成功。但如果前面的代码更改为返回非零值,然后重新编译,则批处理文件的后续执行将指示失败。

复制代码
rem test.bat
@echo off
MainReturnValueTest
@if "%ERRORLEVEL%" == "0" goto good

:fail
echo Execution Failed
echo return value = %ERRORLEVEL%
goto end

:good
echo Execution Succeded
echo return value = %ERRORLEVEL%
goto end

:end

示例输出
Execution Succeded

return value = 0




为什么不找MSDN 呢?
上面多全阿!
const int BLOCK_LINE = 20;//当前地图的行数 const int BLOCK_ROW = 10;//当前地图的列数 class CBlock { public: CBlock(void); ~CBlock(void); private: // 当前方块形状 int m_BlockShape; //下一个方块形状 int m_nextBlockShape; //当前方块状态 int m_BlockState; //等级 int m_BlockLevel; //当前可消行数 int m_BlockCurDelLine; //游戏是否在执行 bool m_blockRunning; //当前方块位置 POINT m_BlockPos[4]; //下个方块位置 POINT m_nextBlockPos[4]; //当前的屏幕状态 //BLOCK_LINE是行数,BLOCK_ROW是列数 int m_Blockmap[BLOCK_LINE][BLOCK_ROW]; public: // 初始化游戏 void BlockInit( void ); private: // 记录方块图形 CBitmap m_bmpBlock[7]; public: //创建一个新的方块出来,这里只给方块形状赋值 void CreateNewBlock(void); private: //这里给方块位置赋值, //shape是形状, pt[]是用来接收方块坐标的(方块形状的排列坐标)数组 //xPos是偏移量,就是方块显示位置和方块显示的框的最左边的差 void MakeNewBlock(int shape, POINT pt[], int xPos); public: //将方块画在对应的DC上 void DrawBlock(CDC* pDC); //方块的下落过程,主要部分 void BlockDropDown(CDC* pDC); private: // 隐藏方块 void HideBlock(CDC* pDC); // 背景图片变量 CBitmap m_bmpBKGND; public: // 画下个方块的框框 void DrawNextBlock( CDC* pDC ); //方块左移 void BlockLeft(CDC* pDC); //方块右移 void BlockRight(CDC* pDC); //方块下移 void BlockFastDown(CDC* pDC); //方块变形 void ChangeState(CDC* pDC); // 消除一行 //pDC是传入的DC //LineNum是消除的行从第几行开始(我这里是最上面为0,最下面为19) //start是 游戏是否是要把消除行以上的都置0,我是用在OnDraw()里,用来重画屏幕的, void DeleteLine(CDC* pDC, int LineNum, bool start); // 游戏是否结束,true=结束了 bool BlockGameOver(void); // 计分板 //del是决定是否是已消一行的 void BlockScore(int del, CDC* pDC); //返回是否升级了,true=升级了 bool BlockLevelUp(void); //返回下落速度 int BlockSpeed(void); };

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧