【问题标题】:Pass Array or List of Images C#传递数组或图像列表 C#
【发布时间】:2012-04-09 17:50:55
【问题描述】:

我需要知道如何将数组或图像列表传递给 C# 中的另一个类(不管是哪一个)。我可以很好地创建数组或列表,并且其中包含我的图像,但无论我尝试传递哪一个,我都会收到错误“方法的类型参数”'AppLayer.SymbolSetSetup.AddSymbolSet(string, System.Collections.Generic .List)'" 无法从用法中推断出来。尝试明确指定类型参数。"

当我运行它时出现这两个错误“错误 CS1502:'AppLayer.SymbolSetSetup.AddSymbolSet(string, System.Collections.Generic.List)' 的最佳重载方法匹配有一些无效参数”和“错误 CS1503:参数 2:无法从 'System.Collections.Generic.List' 转换为 'System.Collections.Generic.List'"

不知道这是否重要,但它从 WPF 项目传递到 C# 类项目。

    private void saveDeckButton_Click(object sender, RoutedEventArgs e)
    {          
        AppLayer.SymbolSetSetup ss = new AppLayer.SymbolSetSetup();

        // get all images in image dock
        int count = imageWrapPanel1.Children.Count;
        Image[] imArray = new Image[count];
        List<Image> list = new List<Image>();

        for (int i = 0; i < count; i++)
        {
            // get image from button
            Button source = (Button)imageWrapPanel1.Children[i];
            Image content = source.Content as Image;
            imArray[i] = content;
            list.Add(content);
        }

        ss.AddSymbolSet(symbolSetNameTextBox.Text, list);
    }


public class SymbolSetSetup : ServerStartup
{
    public void AddSymbolSet(string symbolSetName, List<Image> list) 
    {...

【问题讨论】:

  • 看不到此类错误可能来自的行-也许您可以告诉我们编译器在哪一行抱怨(如果您也没有从错误中丢弃方法名称会有所帮助! )
  • 您能否复制并粘贴完整的确切错误消息和堆栈跟踪?
  • 对不起,我添加了运行时遇到的错误。
  • 我将它作为一个数组尝试,我收到错误“错误 CS1503:参数 2:无法从 'System.Windows.Controls.Image[]' 转换为 'System.Drawing.Image[]' " 可能是因为类中的 Image 不同,一个 .Windows 另一个 .Drawing
  • 错误在“ss.AddSymbolSet(symbolSetNameTextBox.Text, list);”行。

标签: c#


【解决方案1】:

正如您所指出的,您的 Image 类在这两种情况下都不同。尝试在 AddSymbolSet 方法中使用全名(包括名称空间)。

public void AddSymbolSet(string symbolSetName, List<System.Windows.Controls.Image> list)  

【讨论】:

  • 试过了,但我无法添加 System.Windows.Controls.Image 的引用
  • SymbolSetSetup 是否位于不同的程序集中?如果是这样,您需要转到该程序集的项目,右键单击,添加引用,然后选择 PresentationFramework.dll
  • 感谢 Shahar,我必须添加 PresentationFramework、PresentationCore、WindowsBase 和 Windows.Xaml 引用才能使其正常工作。
【解决方案2】:

Exception 表示系统无法理解您传递的是哪种图像:System.Windows.Controls.Image 或 System.Drawing.Image。尝试组织使用。

【讨论】:

    猜你喜欢
    • 2016-04-03
    • 2012-08-23
    • 2015-12-05
    • 1970-01-01
    • 2012-03-26
    • 2012-12-16
    • 2010-11-01
    • 2018-09-11
    相关资源
    最近更新 更多