-1

次のように、プロパティとメソッドを公開するために文字列をフィードするクラスを作成することは可能ですか?

Dim PayCheck as Double = 0
With Employee("Bob")
    .Age =  30
    .Position = Engineer
    .Department = Operations
    .Company = SPP
    .Wage = 30
    .HoursWorked = 45
    PayCheck = .CalculatePayCheck
End With
4

2 に答える 2

2

Dictionary(Of Employee) をクラスにラップしCurrentEmployee、文字列をフィードするときに辞書から設定されるプロパティを持つことができます。

次に、 に関してすべてのプロパティを取得できますCurrentEmployee。しかし、employee 型からすべてのプロパティを複製し、適切なプロパティを からラップするCurrentEmployeeか、リフレクションを使用して から名前で正しいプロパティを取得する必要がありますCurrentEmployee

それは役に立ちますか?

于 2013-02-27T02:37:13.927 に答える
1

はい、コレクションと呼ばれるクラスのクラスを使用する必要があるため、次のようなものがあります...

Class Employee
  Property Id (a unique numeric identifier)
  Property Name
  Property Age
  Property Position
  Property Department
  Property Company
  Property Wage
  Property HoursWorked
  Property PayCheck
  Method  CalculatePayCheck()
End Class

そして、従業員のコレクション

Class Employees
  Property AllEmployees as generic.list(of Employee)
  Property ThisEmployee(Id as Long) as Employee
  Property ThisEmployee(Name as string) as Employee
  Method AddEmployee(Name, Age, Position, Department, Company, Wage, HoursWorked, PayCheck)
  Method  RemoveEmployee(Name)
End Class

Id フィールドの考え方は、たとえば 2 つの「Steven Smith」を使用するなど、名前を重複させることができるということです。

そして、従業員にアクセスするには、あなたがしたように行うことができます

With ThisEmployee("Bob")

また

With ThisEmployee(6)

ほとんどのコレクションはゼロベース (ゼロから開始) であるため、7 番目の従業員を抽出します。

アップデート

上記のサンプル コードを参照すると.... はい、JoeB、これはジェネリック コレクションであるため、for/next ループまたは for/each ループまたは do/while ループを使用できます。

何かのようなもの...

For Counter = 0 to Employees.Count -1
  'print name using the EMPLOYEES collection object
  Print AllEmployees(Counter).Name
  'print name using the EMPLOYEE object (single employee using the Id property)
  Print ThisEmployee(Counter).Name
Next

場合によっては、オブジェクトを使用する前にインスタンス化する必要があるかもしれません...そのように...

Dim TmpEmployee as Employee
For Counter = 0 to Employees.Count -1
  'get employee from collection
  TmpEmployee = AllEmployees(Counter)
  'print name using the EMPLOYEE object 
  Print TmpEmployee.Name
  TmpEmployee = nothing
Next
于 2013-02-27T18:01:19.483 に答える