2011-02-09 5 views
1

저는 지문 판독기를 사용하여 다른 사람의 지문 이미지를 캡처하여 데이터베이스에 저장하는 응용 프로그램을 코딩하고 있습니다.'클래스'는 '유형'이지만 '변수'처럼 사용됩니다

는 전 C#으로 VB 논리를 변환 바빠,하지만 나는이 개 수업을 내 기본 폼 내에서 ... 여기

붙어있어 : 지문과 fingerImage을 각각. 내 지문 클래스에서

을, 나는 fingerImage 클래스를 참조 할 필요가 :

내 문제는 다음이다. 이 방법은 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; } 
      } 
     } 
+0

또한 유형의 인스턴스를 'foreach'하려면 'IEnumerable '를 구현해야합니다. 그러나 당신의 경우에는 fingerImage의 실제 인스턴스보다'fingerImage'의리스트를 반복하고 싶은 것처럼 보입니다. – Skurmedel

+0

혼란을 피하기 위해 .NET의 명명 규칙 규칙을 따르는 것이 좋습니다. 클래스/멤버에 대한 파스칼 이름 지정 및 변수 이름에 대한 Camel 케이싱 [이름 지정 지침] 확인 (http://msdn.microsoft.com/en-us/library/x2dbyw72%28v=vs.71%29.aspx) –

+0

클래스를 반복하지 않습니다. 객체 그 자체 인 객체의 컬렉션을 순환합니다. '클래스'와 '객체'의 차이점을 알아야합니다. 그렇게하면 왜 그 오류가 발생하는지 분명해질 것입니다. –

답변

2

이 시도 :

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

참고 :

  • 변수 이름이 당신은 아마 어떤 종류의 콜렉션이고 변수 이름은 아마도 복수형 일 것입니다 (그리고 그렇지 않다면, 아마도 그렇게되어야 할 것입니다).
  • 클래스는 Microsoft naming conventions을 따르려면 파스칼 케이스 여야합니다. 클래스 정의를 수정해야하는 것처럼 보입니다. 명명 규칙을 따르면 혼동을 줄이고 이와 같은 오류를 쉽게 찾아 낼 수 있습니다.

나는 종종 다음과 같은 명명 규칙이 불필요한 작업으로 보이지만 장기적으로는 시간을 절약하고 특히 다른 사람들이 팀에 가입 할 때 시간을 절약 해줍니다.

2

fingerImage Fi를 에서 fingerImage

이 두 가지 유형이 동일, 이런 일이 안된다. 후자의 fingerImage는 컬렉션이어야합니다.

5

fingerImage이라는 변수가 없으므로 오류가 발생합니다. 그러나 fingerImage 유형이 있습니다.

어쩌면 반복을 위해 어딘가에서 fingerImage의 콜렉션을 가져와야 할 것입니다.

3

클래스는 유형입니다. "클래스"라는 단어를 "객체"와 동의어로 생각하는 것 같습니다 (클래스을 루프 할 수 없으므로 열거 형 객체을 반복 할 수 있습니다).

foreach (fingerImage fi in fingerImages) 

... fingerImages수집의 인스턴스의이다 :

foreach (fingerImage fi in fingerImage) 

...이 같은 것입니다 : 당신이 대신 필요한 기본적

, fingerImage 클래스

정확하게 그 컬렉션은 더 많은 코드를 보지 않고는 말할 수 없습니다. 하지만 어딘가에 하나 있다고 가정하고 있습니다 (아마도 fingerImage[] 또는 List<fingerImage>?).

+0

+1 나를 펀치에 이겼다! –

관련 문제