繁体   English   中英

“类”是“类型”,但像“变量”一样使用

[英]'Class' is a 'type' but is used like a 'variable'

我正在编写一个使用指纹读取器来捕获某人指纹图像并将其保存在数据库中的应用程序。

我正在忙于将vb逻辑转换为c#,但是我被困在这里...

在我的主要表单中,我有2个类:分别为fingerPrints和fingerImage。

我的问题如下:

在我的fingerPrints类中,我需要引用fingerImage类。 以下是一些代码,以方便说明:

此方法派生自fingerPrint类,该类引用了fingerImage类:

public byte[] getImageFromFinger(string finger)
        {
            foreach (fingerImage fi in fingerImage)
            {
                if (fi.Finger == finger)
                    return fi.Image;
            }
            return null;
        }

我的问题是我似乎无法修复的错误... fingerImage是“类型”,但像“变量”一样使用。

我需要遍历全班10次,每只手指一次,但是我做错了事,我认为这有点小。 任何帮助,将不胜感激。

此外,这是我的fingerImage类中的一些代码,以防万一...

public class fingerImage : frmFingerprintsMain
        {
            private byte[] _image;
            private string _finger;

            public fingerImage(byte[] image, string finger)
            {
                Image = image;
                Finger = finger;
            }

            public byte[] Image
            {
                get { return _image; }
                set { _image = value; }
            }

            public string Finger
            {
                get { return _finger; }
                set { _finger = value; }
            }
        }

因为没有名为fingerImage变量,所以出现了错误。 但是,您确实有一个名为fingerImage的类型。

您可能需要从某个地方获取fingerImage的集合以进行迭代。

类是类型 ; 您似乎认为“类”一词与“对象”同义(但是您不能“遍历”一个 ;但是可以遍历一个可枚举的对象 )。

基本上,您需要的是以下内容:

foreach (fingerImage fi in fingerImage)

...是这样的:

foreach (fingerImage fi in fingerImages)

...其中fingerImagesfingerImage类的实例集合

该集合的确切位置,如果没有更多代码,我不能说真的。 但是我假设您在某个地方(可能是fingerImage[]List<fingerImage> ?)。

尝试这个:

foreach (FingerImage fi in fingerImages)
{
    ....
}

注意:

  • 您要遍历的变量名可能是某种集合,并且变量名可能是复数(如果不是,则很可能应该是复数)。
  • 该类应采用Pascal大小写,以遵循Microsoft的命名约定 看来您也需要修复类定义。 遵循命名约定可以减少混乱,并使此类错误更容易发现。

我知道遵循命名约定通常似乎是不必要的工作,但从长远来看,它将节省您的时间,尤其是当您有其他人加入您的团队时。

fingerImage网络fingerImage

这两种类型是相同的,这不应该发生。 后一个fingerImage应该是一个集合。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM