我在编译时收到错误
本文关键字:错误 编译 | 更新日期: 2023-09-27 17:56:38
在我进行了下面帖子中建议的更改后,我收到了一个新错误。您可以在那里找到有关错误的详细信息(见图1)。你知道我该怎么解决这个问题吗?
如何声明构造函数?
http://i58.tinypic.com/qwwqvn.png
编辑:对不起,我是新来的,所以我真的不知道事情进展如何。在上一篇文章中,有人建议我写一篇带有该问题链接的新帖子。我现在将提供足够的细节,以便您可以了解正在发生的事情。
我有 3 个错误想要解决...
这些错误的代码发布在下面
"参数 1:无法从'对象'转换为'字符串'"
"参数 2:无法从'System.Windows.Media.Brush'转换为'string'"
"'Microsoft.Samples.Kinect.ControlsBasics.SelectionDisplay.SelectionDisplay(string, string)' 有一些无效的参数"
public SelectionDisplay(string itemId, string Tag)
{
this.InitializeComponent();
this.messageTextBlock.Text = string.Format(CultureInfo.CurrentCulture,Properties.Resources.SelectedMessage,itemId);
}
var files = Directory.GetFiles(@".'GalleryImages");
foreach (var file in files)
{
FileInfo fileInfo = new FileInfo(file);
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.UriSource = new Uri(file, UriKind.Relative);
bi.EndInit();
var button = new KinectTileButton
{
Label = System.IO.Path.GetFileNameWithoutExtension(file),
Background = new ImageBrush(bi),
Tag = file
};
var selectionDisplay = new SelectionDisplay(button.Label as string, button.Tag as string);
this.wrapPanel.Children.Add(button);
}
private void KinectTileButtonClick(object sender, RoutedEventArgs e)
{
var button = (KinectTileButton)e.Source;
var image = button.CommandParameter as BitmapImage;
var selectionDisplay = new SelectionDisplay(button.Label,button.Background); // aici poti apoi sa mai trimiti si imaginea ca parametru pentru constructor
this.kinectRegionGrid.Children.Add(selectionDisplay);
e.Handled = true;
}
感谢您的理解,我希望该帖子能够重新打开。
现在,您已经以两种不同的方式调用了 SelectionDisplay 的构造函数:
var selectionDisplay = new SelectionDisplay(button.Label as string, button.Tag as string);
var selectionDisplay = new SelectionDisplay(button.Label,button.Background); // aici poti apoi sa mai trimiti si imaginea ca parametru pentru constructor
第一个需要两个字符串,第二个需要对象和画笔(如您遇到的错误所示)。这意味着您需要两个构造函数:
public class SelectionDisplay
{
public SelectionDisplay(string itemId, string Tag)
{
this.InitializeComponent();
this.messageTextBlock.Text = string.Format(CultureInfo.CurrentCulture,Properties.Resources.SelectedMessage,itemId);
}
public SelectionDisplay(object label, Brush background)
{
//Do stuff
}
}
现在,您可能需要考虑只有一个构造函数,但您需要确保始终使用相同的参数类型调用它。
如果我能澄清任何事情,请告诉我!