C# と XAML で Windows 8 用のアプリケーションを作成しています。
AppNamespace という名前空間内に 2 つのクラスを定義しました。これらのクラスの 1 つは、コンストラクター内で 3 次元のブール配列を取ります。
public class Solver
{
// Board is a class also in this namespace but I don't think the issue is
//there, so I've omitted it's definition
private Board current;
// You can see that the class clearly DOES take a parameter of the same type
// as the array "content" (which is defined later)
public Solver (bool[, ,] initial)
{
// The parameter is then used to construct a "Board" class within the
// "Solver" class.
current = new Board(initial);
}
// Several methods within the class
}
したがって、定義は上で見ることができます。
次に、'NewPage.xaml' という gridapp に新しいページを作成しました。そのページには、配列内の値を操作するテキスト ボックスがいくつかあります。(ここは特に問題ないようです)
次に、「NewPage.xaml.cs」でボタンをクリックすると、クラスにインスタンスが作成され、クラス内でメソッドが実行され、「NewPage.xaml.cs」の上部に 3 次元が定義されます以下に示す配列、
// Declare the namespace where the class "Solver" is situated
using App.Classes;
namespace App
{
// So below is the C# part of the page "PuzzleSolver"
public sealed partial class PuzzleSolver : App.Common.LayoutAwarePage
{
// Create an array called content
bool[, ,] content = new bool[9, 9, 9];
public PuzzleSolver()
{
this.InitializeComponent();
//Set every cell of the created content array to true
for (int i = 0; i <= 8; i++)
{
for (int j = 0; j <= 8; j++)
{
for (int k = 0; k <= 8; k++)
{
content[i, j, k] = true;
}
}
}
}
/* There are some methods which change information in the array "Content" based on the
stuff input into the XAML textboxes on the page. */
// The below method is invoked when a XAML Button is clicked on the page
// and I intend it to create a "Solver" object, using the "content" array
// from this page as a parameter
private void Button_Click_1(object sender, RoutedEventArgs e)
{
// So now I create the and pass in the "content" array
Solver newSolve = new Solver(content);
newSolve.Solve();
}
}
問題は、コンパイラが「className」がクラスであることを認識しているが、1 つのパラメーターを受け取るコンストラクターがないと言い、次のようにも言うことです。
「ProjectName.className には「メソッドの定義が含まれておらず、タイプ ProjectName.className の最初の引数を受け入れる拡張メソッド「メソッド」が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?」
この情報から私の問題がどこにあるのか誰でも特定できますか?
これを編集して、他の名前空間宣言、最初に "Solver.xaml.cs" の宣言を表示しました。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using App.Classes;
「Solver.xaml」の宣言:
<common:LayoutAwarePage
x:Name="pageRoot"
x:Class="App.Solver"
DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App"
xmlns:common="using:App.Common"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Page.Resources>
<x:String x:Key="PageName">Solver</x:String>
</Page.Resources>