When I try to run some code, I get the following errors:
/home/runner/Relational-Operators/Operators/Logical.cs(23,42): error CS0650: Bad array declarator: To declare a managed array the rank specifier precedes the variable's identifier. To declare a fixed size buffer field, use the fixed keyword before the field type. [/home/runner/Relational-Operators/main.csproj]
/home/runner/Relational-Operators/Operators/Logical.cs(23,43): error CS0270: Array size cannot be specified in a variable declaration (try initializing with a 'new' expression) [/home/runner/Relational-Operators/main.csproj]
This is the code block I am trying to run.
using System;
namespace Operators
{
class Logical
{
public static void Run()
{
Console.WriteLine("Enter two binary digits > ");
int[] ints = new int[2]{Convert.ToInt32(Console.Read()), Convert.ToInt32(Console.Read())};
bool[] bools = new bool[2];
for (int i = 0; i < 2; i )
{
switch (ints[i])
{
case 0: bools[i] = false; break;
case 1: bools[i] = true; break;
default:
throw new InvalidOperationException("Integer value is not valid");
}
}
bool b1, b2 = bools[0], bools[1];
if (b1 && b2)
{
Console.WriteLine("true");
}
if (b1 || b2)
{
Console.WriteLine("true");
}
else
{
Console.WriteLine("false");
}
if (!(b1 && b2))
{
Console.WriteLine("true");
}
}
}
}
I am at a loss. I cannot find a way to fix the errors. From everything I've read anywhere so far, this code should be valid for C#.
What is causing these errors and how do I fix them?
CodePudding user response:
The way b1
and b2
are declared and assigned values in a single statement is causing this error.
You can change it so you assign the value to each variable directly like so:
bool b1 = bools[0], b2 = bools[1];
Or even unpack them as a tuple like so:
var (b1, b2) = (bools[0], bools[1]);