Ich bin neu in C# und ich komme aus C++.Warum, wenn ich benutze, wenn es sonst funktioniert und wenn ich Ternäroperator verwende, tut es nicht?
Warum, wenn ich "if else" es funktioniert, aber wenn ich Ternäroperator verwenden, tut es nicht?
Ich dachte, dass es wegen "Console.Writeline()" im dritten Teil war, und ich ersetzte mit einer gemeinsamen Aufgabe, aber es gibt das gleiche Problem.
Vielen Dank im Voraus!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication8
{
class Board
{
private char[,] board = new char[3, 3];
public void move (int g, int x, int y) //player, x , y position
{
char sign = ' ';
switch (g)
{
case '1':
sign = '0';
break;
case '2':
sign = 'x';
break;
default:
Console.WriteLine("Input Error");
break;
}
//error (x > 1 && x < 4 && y > 1 && y < 4) ? (board[x - 1, y - 1] = sign) : (Console.WriteLine("Error"));
if (x > 1 && x < 4 && y > 1 && y < 4)
{
board[x - 1, y - 1] = sign;
}
else Console.WriteLine("Error");
}
}
class Game
{
static void Main(string[] args)
{
}
}
}
Was meinst du mit "es nicht"? Tut es etwas, was Sie nicht erwarten? Wenn ja, was? –
Sie müssen sagen, was "nicht funktioniert" bedeutet. Erhalten Sie eine Fehlermeldung? Wenn ja, welche Nachricht? Ist das Verhalten anders als erwartet? Wenn ja, was ist das erwartete und tatsächliche Verhalten? – NineBerry
Umh du hast Recht. Es kompiliert nicht einmal. Ich benutze Visual Studio auf Italienisch. Es besagt, dass es nicht möglich ist, die Art von Bedingungsausdruck abzuleiten, da es kein "Char" gibt, um die implizite Konvertierung "ungültig" zu machen. –