問題5
在命令行下用csc命令編譯C#文件提示'csc' 不是內部或外部命令,也不是可運行的程序或批處理文件。
解決方案
方案1:
執行
C:/Program Files/Microsoft Visual Studio .NET 2003/SDK/v1.1/Bin/sdkvars.bat
設置環境變量
然後在用csc對cs文件進行編譯即可。
方案2:(推薦)
添加System environment variables:
Set Path=C:/Program Files/Microsoft Visual Studio .NET 2003/SDK/v1.1/Bin/;C:/WINNT/Microsoft.NET/Framework/v1.1.4322/;C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/bin/;C:/Program Files/Microsoft Visual Studio .NET 2003/Common7/IDE/;%PATH%
Set LIB=C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/lib/;"C:/Program Files/Microsoft Visual Studio .NET 2003/SDK/v1.1/Lib/";%LIB%
Set INCLUDE=C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/include/;"C:/Program Files/Microsoft Visual Studio .NET 2003/SDK/v1.1/include/";%INCLUDE%
Set NetSamplePath=C:/PROGRA~1/MICROS~1.NET/SDK/v1.1/
重啓系統
問題6
嵌套註釋
解決方案
/*/* */ */
有問題!編譯器自動尋找與/*相匹配的*/,而/*/*都與第一個*/相匹配,最後一個*/就沒有與之匹配的/*了。
#if(true)
/* */
#endif
正解!使用預處理語句可以解決嵌套的問題。
預處理語句的說明:
#if 使您得以開始條件指令,測試一個或多個符號以查看它們是否計算爲 true。如果它們確實計算爲 true,編譯器將計算位於 #if 和下一條指令之間的所有代碼。
#if symbol [operator symbol]...
其中:
symbol
您要測試的符號的名稱。也可以使用 true 和 false。symbol 可以用否定運算符作爲開頭。例如,!true 將計算爲 false。
operator(可選)
可以使用下列運算符計算多個符號:
==(相等)
!=(不相等)
&&(與)
|| (或)
可以用括號將符號和運算符分組。
備註
#if 以及 #else、#elif、#endif、#define 和 #undef 指令,使您得以基於一個或多個符號條件包括或排除代碼。這在編譯調試版本的代碼或編譯特定配置時最爲有用。
以 #if 指令開始的條件指令必須用 #endif 指令顯式終止。
示例
// preprocessor_if.cs
#define DEBUG
#define VC_V7
using System;
public class MyClass
{
public static void Main()
{
#if (DEBUG && !VC_V7)
Console.WriteLine("DEBUG is defined");
#elif (!DEBUG && VC_V7)
Console.WriteLine("VC_V7 is defined");
#elif (DEBUG && VC_V7)
Console.WriteLine("DEBUG and VC_V7 are defined");
#else
Console.WriteLine("DEBUG and VC_V7 are not defined");
#endif
}
}
輸出
DEBUG and VC_V7 are defined
問題7
csc/nooutput: class1.cs
fatal error CS2007: 無法識別的命令行選項:“/nooutput:”
研究中...
問題8
找不到入口點
解決方案
找不到Main()函數,檢查是否有Main()函數,或者檢查拼寫錯誤及字母大小寫。