c# - C# 代码适用于 Visual Studio 2019,但不适用于在线编译器
问题描述
我正在做在线测试。该代码在我的 Visual Studio 2019 上运行良好,但在我提交时却不行。甚至其他在线编译器也会抛出许多编译错误。在线测试环境设置为:Mono C# 的 DMCS 版本,编译器版本 4.6.2.0,带有以下标志:-optimize+ -r:System.Numerics {files}。
我试图将 .NET 目标框架更改为 4,但我的计算机上没有任何错误。如何将 Visual Studio 配置为与上述相同的设置?
使用系统;使用 System.Collections.Generic;
命名空间 capgemini_kattis { 类程序 { 静态无效 Main(string[] args) {
/*
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Task 2
*/
bool isNumberOfCommandsRead = false;
List<string> answer = new List<string>();
string input = "????????????????????????????????";
Char[] charArray = input.ToCharArray();
int numberOfCommands = 0;
string line;
void CLEAR(int i)
{
charArray[i] = '0';
}
void SET(int i)
{
charArray[i] = '1';
}
void OR(int i, int j)
{
if (charArray[i] == '1' || charArray[j] == '1')
{
charArray[i] = '1';
}
else if (charArray[i] == '0' && charArray[j] == '0')
{
charArray[i] = '0';
}
else
{
charArray[i] = '?';
}
}
void AND(int i, int j)
{
if (charArray[i] == '1' && charArray[j] == '1')
{
charArray[i] = '1';
}
else if (charArray[i] == '0' || charArray[j] == '0')
{
charArray[i] = '0';
}
else
{
charArray[i] = '?';
}
}
while ((line = Console.ReadLine()) != null)
{
if (!isNumberOfCommandsRead)
{
numberOfCommands = Convert.ToInt32(line.Trim());
isNumberOfCommandsRead = true;
if (numberOfCommands == 0)
{
break;
}
}
else
{
string[] split = line.Split(new char[] { ' ' }, StringSplitOptions.None);
switch (split[0].Trim().ToUpper())
{
case "CLEAR":
CLEAR(Convert.ToInt32(split[1].Trim()));
numberOfCommands--;
break;
case "SET":
SET(Convert.ToInt32(split[1].Trim()));
numberOfCommands--;
break;
case "OR":
OR(Convert.ToInt32(split[1].Trim()), Convert.ToInt32(split[2].Trim()));
numberOfCommands--;
break;
case "AND":
AND(Convert.ToInt32(split[1].Trim()), Convert.ToInt32(split[2].Trim()));
numberOfCommands--;
break;
}
if (numberOfCommands == 0)
{
Array.Reverse(charArray);
string sectionResult = "";
for (int i = 0; i < (new string(charArray)).Length; i++)
{
sectionResult += charArray[i].ToString();
charArray[i] = '?';
}
answer.Add(sectionResult);
sectionResult = null;
isNumberOfCommandsRead = false;
}
}
}
foreach (string s in answer)
{
Console.WriteLine(s);
}
Console.ReadLine();
}
}
}
解决方案
我发现Repl.it正在使用 Mono C# 编译器版本 4.6.2.0 进行编译。它有助于发现问题并进行修复。
推荐阅读
- flexbox - 换行后防止flexbox子填充父宽度
- python - pandas 中按时间智能索引
- python - 结果取决于python中的其他结果
- ios - 调用 removeItemAtPath 时崩溃
- javascript - 使用参数发送凭据 - PUT -Firefox
- python - Python加速JSON解析——自带解码器
- opencv - 在一行中识别具有不同字符高度的俄罗斯车牌 OpenALPR
- angular - @Optional() @Host() 抛出“无法实例化循环依赖!” 错误
- java - 在使用 var 的循环中进行类型推断
- android - Firebase 项目最大应用数