Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 从另一个类访问公共类中的私有函数和变量_Vb.net - Fatal编程技术网

Vb.net 从另一个类访问公共类中的私有函数和变量

Vb.net 从另一个类访问公共类中的私有函数和变量,vb.net,Vb.net,正如标题所说,我遇到了一个问题,我必须在类中调用某些私有函数 Public Class Class1 private Type Private Name private Function() 我尝试了以下几点: Public Class Class1 Dim copyClass As Class1 Public Shared Instance As Class1 Public Sub New() MyBase.New() copyClass = Me End

正如标题所说,我遇到了一个问题,我必须在类中调用某些私有函数

Public Class Class1
private Type
Private Name
private Function()
我尝试了以下几点:

Public Class Class1
  Dim copyClass As Class1
  Public Shared Instance As Class1

  Public Sub New()
    MyBase.New()
    copyClass = Me
  End Function
  Public Function createInstance() As Class1
    Instance = copyClass
    Return Instance
  End Function
然后在我的另一个班级,第2班,我增加了:

  Public Property callingObject As wdCopyPatch
    Get
      Return copyObject
    End Get
    Set(value As wdCopyPatch)
      copyObject = value
    End Set
  End Property
现在,我可以在Class1中的函数中执行以下操作

Dim Ob as Class2
Ob.callingObject = createInstance() 
这允许我使用Class2中的copyObject,但只允许我访问Class1的公共函数和变量。我该怎么做才能访问Class1的私有函数和变量,而不必公开所有内容


任何建议或意见都将不胜感激:)

根据我的意见,这里有一些代码:

Sandbox
是我的类,它具有一个私有函数,并且是一个从该私有函数获取信息的公共属性

otherclass
,调用沙盒的此属性

Public Class sandbox

    Public ReadOnly Property myHiddenValue() As String
        Get
            Return get_that_sucker()
        End Get

    End Property

    Private Function get_that_sucker()
        Return "boo!"
    End Function

End Class

Public Class otherClass

    Public Sub mySub()
        Dim mysandbox As New sandbox
        MsgBox(mysandbox.myHiddenValue)
    End Sub

End Class

根据我的评论,这里有一些代码:

Sandbox
是我的类,它具有一个私有函数,并且是一个从该私有函数获取信息的公共属性

otherclass
,调用沙盒的此属性

Public Class sandbox

    Public ReadOnly Property myHiddenValue() As String
        Get
            Return get_that_sucker()
        End Get

    End Property

    Private Function get_that_sucker()
        Return "boo!"
    End Function

End Class

Public Class otherClass

    Public Sub mySub()
        Dim mysandbox As New sandbox
        MsgBox(mysandbox.myHiddenValue)
    End Sub

End Class

“私有”减速的整个想法是使其私有化。。。与第二个类一样,您需要在第一个类中创建属性,当设置时,可以调用其内部函数之一,并通过propertyRemember返回某些内容,您可以在属性的“set”和“get”方法中执行“work”…对,感谢您指出这一点。如果您需要访问某些私有字段和函数,为什么它们是私有的?也许其中一个应该是“父”用作助手的私有内部类。然后,可以根据需要使用内部类,但函数不向世界其他地方公开。。。与第二个类一样,您需要在第一个类中创建属性,当设置时,可以调用其内部函数之一,并通过propertyRemember返回某些内容,您可以在属性的“set”和“get”方法中执行“work”…对,感谢您指出这一点。如果您需要访问某些私有字段和函数,为什么它们是私有的?也许其中一个应该是“父”用作助手的私有内部类。然后,可以根据需要使用内部类,但函数不向世界其他地方公开。至于私有函数,我有没有办法在我的Class1实例中使用它们?私有函数可以在其父类的“内部”使用。。。因此,类1中的任何其他函数都可以使用类1中的私有函数。那么,使用公共函数调用一些私有函数是否可以接受?我会通过属性来实现,就像上面答案中的代码一样。如果你的公共函数调用你的私有函数结果完全一样。。然后您实际上有一个公共函数:-)私有函数不能在父实例化的上下文之外使用。。。例如,一个属性,可以调用3个不同的私有函数,从中获取一些信息,重新工作,并提供输出。。。这就是你会使用私有函数的地方,不应该直接从“外部”调用。没有问题,如果你需要的话,请随意获得更多的澄清。至于私有函数,我有什么方法可以在我的Class1实例中使用它们吗?私有函数可以在其父类的“内部”使用。。。因此,类1中的任何其他函数都可以使用类1中的私有函数。那么,使用公共函数调用一些私有函数是否可以接受?我会通过属性来实现,就像上面答案中的代码一样。如果你的公共函数调用你的私有函数结果完全一样。。然后您实际上有一个公共函数:-)私有函数不能在父实例化的上下文之外使用。。。例如,一个属性,可以调用3个不同的私有函数,从中获取一些信息,重新工作,并提供输出。。。这是您将使用私有函数的地方,不应该直接从“外部”调用。没有问题,如果需要,请随时获取更多的说明。