【发布时间】:2022-01-06 16:21:55
【问题描述】:
按照教程学习如何构建数独求解器。创建了两个文件,作为数据文件夹的 SudokuMap.cs 和包含在 Workers 文件夹中的 SudokuMapper.cs。 SudokuMapper.cs 应该映射 9 x 9 网格内的行和列。
'SudokuMapper.cs'中的return语句旁边出现follow错误。
Cannot implicitly convert type 'SudokuSolver.Data.SudokuMap' to 'SudoSolver.Workers.SudokuMapper'
关于如何修复此错误的任何想法?我仔细检查了代码的最终版本,一切都完全一样。
这是上下文的代码。
SudokuMapper.cs
using SudokuSolver.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SudokuSolver.Workers
{
class SudokuMapper
{
public SudokuMapper Find(int givenRow, int givenCol)
{
SudokuMap sudokuMap = new SudokuMap();
if ((givenRow >= 0 && givenRow <= 2) && (givenCol >= 0 && givenCol <= 2))
{
sudokuMap.StartRow = 0;
sudokuMap.StartCol = 0;
}
else if ((givenRow >= 0 && givenRow <= 2) && (givenCol >= 3 && givenCol <= 5))
{
sudokuMap.StartRow = 0;
sudokuMap.StartCol = 3;
}
else if ((givenRow >= 0 && givenRow <= 2) && (givenCol >= 6 && givenCol <= 8))
{
sudokuMap.StartRow = 0;
sudokuMap.StartCol = 6;
}
if ((givenRow >= 3 && givenRow <= 5) && (givenCol >= 0 && givenCol <= 2))
{
sudokuMap.StartRow = 3;
sudokuMap.StartCol = 0;
}
if ((givenRow >= 3 && givenRow <= 5) && (givenCol >= 3 && givenCol <= 5))
{
sudokuMap.StartRow = 3;
sudokuMap.StartCol = 3;
}
if ((givenRow >= 3 && givenRow <= 5) && (givenCol >= 6 && givenCol <= 8))
{
sudokuMap.StartRow = 3;
sudokuMap.StartCol = 6;
}
if ((givenRow >= 6 && givenRow <= 8) && (givenCol >= 0 && givenCol <= 2))
{
sudokuMap.StartRow = 6;
sudokuMap.StartCol = 0;
}
if ((givenRow >= 6 && givenRow <= 8) && (givenCol >= 3 && givenCol <= 5))
{
sudokuMap.StartRow = 6;
sudokuMap.StartCol = 3;
}
if ((givenRow >= 6 && givenRow <= 8) && (givenCol >= 6 && givenCol <= 8))
{
sudokuMap.StartRow = 6;
sudokuMap.StartCol = 6;
}
return sudokuMap;
}
}
}
数独地图.cs
namespace SudokuSolver.Data
{
class SudokuMap
{
public int StartRow { get; set; }
public int StartCol { get; set; }
}
}
【问题讨论】:
-
SudokuMapper和SudokuMap不一样。检查您的退货类型。本教程可能做错了,但请仔细查看以确保。
标签: c# visual-studio