2012-05-18 26 views
0

我正在将代码从代码隐藏到类并运行到一个问题。我有一个方法,使一个字符串(一个HTML发票)。在该方法中,创建最终的金额。我想创建一个名为Invoice的类,该类将具有“CreateInvoice”方法,该方法将返回一个字符串,并且还希望设置该对象的finalCharge属性。我把所有的繁重做,但它是建立类是试图让一个类返回一个字符串

Public Class Invoice 
    Public finalCharge As Double 
    Public invoiceString As String 
    Public billingId As Integer 
    Public clientID As Integer 

Public Shared Function CreateInvoice(ByVal bill_id As Integer, ByVal client_id As Integer) As String 
    ... 'create string invoice 
    ... 'tally final charge 
End Function 


'On my code-behind page. 
dim y as string 
dim x as Invoice 

y = x.CreateInvoice(1225,8855) <-- this line doesn't work. 

谢谢你的帮助来获得整理出我有麻烦的一部分!

回答

2

这是一个Shared函数 - 这意味着你不需要(或想要)该类的一个实例来使用它。你应该把它想:

Invoice.CreateInvoice(1225, 8855) 

这就是说,我不能完全肯定这应该是Shared,首先,因为你也状态:

[I] ...想设置在finalCharge财产

由于Shared功能只能访问Shared特性(因为没有实例),你可能真的希望它是一个实例函数:

Public Class Invoice 
    Public finalCharge As Double 
    Public invoiceString As String 
    Public billingId As Integer 
    Public clientID As Integer 

    Public Function CreateInvoice(ByVal bill_id As Integer, ByVal client_id As Integer) As String 
     ... 'create string invoice 
     Me.finalCharge = ... 'tally final charge 
    End Function 
End Class 

在这种情况下,你把它想:

Dim x as New Invoice() 
Dim y as String = x.CreateInvoice(1225, 8855) 
Dim finalCharge as Double = x.finalCharge 
+0

真棒!谢谢。我希望你不介意我是否添加后续内容:在“CreateInvoice”中我似乎无法设置finalCharge。在“CreateInvoice”里面我总共有两个,但似乎无法设置全局的“finalCharge”。再次感谢!! – user995727

+0

解决了!再次感谢你的帮助!快乐的长周末。 – user995727