• 0

VB.NET - How do I use pointers to pointers (if even possible)


Question

Hi

I want to use the New function for an object with array of objects as parameters something like this - 

Sub New(varPar () as Object)

End Sub

In my Class I have several objects that can be initialized.

I'm trying to make a the code general so the calling code will put in the varPar array the objects it wants to init and I will use something like this - 

Dim obj1 as <type1>

Dim obj2 as <type2>

.

.

.

dim objN as <typeN>

 

Sub New(varPar () as Object)

 if  varPar is nothing then

      return

end if       

if varPar.Length > 0 then

      obj1 = varPar(0)

if varPar.Length > 1 then

      obj1 = varPar(1)

 etc...      

End Sub

 

I want to do that in a loop like this

Dim obj1 as <type1>

Dim obj2 as <type2>

.

.

.

dim objN as <typeN>

dim varArray() as object = { obj1,obj2,obj3.......objN}

 

Sub New(varPar () as Object)

 if  varPar is nothing then

      return

end if       

for i = 0 to varPar.Lentgh -1 

      varArray(i) = varPar(i)

next

End Sub

 

This will init the varArray but not obj1 obj2 obj3 etc.

Does anyone know how I can achieve this?

It is trivial in C, but in VB I don't know if it is possible or not.

Thanks

3 answers to this question

Recommended Posts

  • 0
  On 05/07/2018 at 11:29, Ophir said:

Hi

I want to use the New function for an object with array of objects as parameters something like this - 

 

<snipped>

 

This will init the varArray but not obj1 obj2 obj3 etc.

Does anyone know how I can achieve this?

It is trivial in C, but in VB I don't know if it is possible or not.

Thanks

Expand  

I'm not sure I fully understand the question. So here are some questions of my own :)

 

The array injected in the constructor always has the same amount of elements as the internal array?

Are you trying to make each element of the internal array point to the corresponding element of the array injected in the constructor?

 

Could you maybe tell us which problem this construction is trying to solve? There might be a more efficient way of doing that in VB.NET.

  • 0
  On 05/07/2018 at 12:10, Raphaël G. said:

I'm not sure I fully understand the question. So here are some questions of my own :)

 

The array injected in the constructor always has the same amount of elements as the internal array?

Are you trying to make each element of the internal array point to the corresponding element of the array injected in the constructor?

 

Could you maybe tell us which problem this construction is trying to solve? There might be a more efficient way of doing that in VB.NET.

Expand  

The Array injected does not have to have the same amount of elements as the internal one.

I want to initialize the class variables obj1 obj2 obj3 etc in a loop instead of one by one while checking the Injected Array length.

 

In C I will put the Address of obj1 obj2 obj3 etc in the Internal Array and do something like this

 

void *varArray[] = { &obj1, &obj2, &obj3......&objN}

 

for(i = 0; i < <Injected Array>.length; i++)

{

        *varArray=varPar;    //By that I actually Initializing obj1, obj2, obj3 etc

}

 

I hope it is clearer now.

 

Do not know why when I submit the square parenthesis are removed.

Edited by Ophir
  • 0
  On 05/07/2018 at 14:35, Ophir said:

The Array injected does not have to have the same amount of elements as the internal one.

I want to initialize the class variables obj1 obj2 obj3 etc in a loop instead of one by one while checking the Injected Array length.

 

In C I will put the Address of obj1 obj2 obj3 etc in the Internal Array and do something like this

 

void *varArray[] = { &obj1, &obj2, &obj3......&objN}

 

for(i = 0; i < <Injected Array>.length; i++)

{

        *varArray=varPar;    //By that I actually Initializing obj1, obj2, obj3 etc

}

 

I hope it is clearer now.

 

Do not know why when I submit the square parenthesis are removed.

Expand  

If I'd convert what you posted here into vb.net, :

 

 

Dim list() As String = {"something", "something2"}


            For Each item In list

                'Then simply call the item

            Next

 

If you want to track each item, I usually make my own classes, for example let's say a standard name/value keypair:

 

Public class NameValueKeyPair

        public name as string

        public value as string

end class

 

Then, in a sub/function:

 

dim NameValueKeyPairList as new list(of NameValueKeyPair)

Dim NameValueKeyPair as new NameValueKeyPair

NameValueKeyPair.name = "name"

NameValueKeyPair.value = "value"

Namevaluekeypairlist.add(namevaluekeypair)

 

Do that in a loop, and then you can loop through the list to find what you need, for example:

 

For each item in NameValueKeyPairList

      If item.name = "name" then

             'Found it!

      End if

Next

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • The look speaks volumes, doesn't it?  
    • Whatever happened to offering a desirable product is what lead to profit?
    • 2 articles down "more gamers are switching to Windows 11, according to Valve."
    • After 4 years, the w11 adoption should be huge, but thats not the case, you see adoption dropping in another post. there are so many valid reason why people stick on w10, microsoft need to stop the whole support end at october. XP and 7 had extended support until a good version of windows released that people moved on to. right now w11 its a mess, its unreliable, unstable, buggy and the forced usability downgrades. Now more than ever people have alternatives even now M$ have a version with support until 2027 and 2032. its not that hard to keep supporting 10 until then. Hopefully by then w12 release and its a good option
    • Data (Use and Access) Bill faces pushback over AI and creative rights in UK parliament by Fiza Ali Image via: BBC In recent months, a series of high‐profile controversies has highlighted growing tension between technology platforms, content creators, and regulators over how artificial intelligence is trained and used. Previously, LinkedIn admitted sharing private messages to train its models, Meta was sued in France for using copyright‐protected content without authorisation, and OpenAI is paradoxically urging US lawmakers to expand "fair use" for AI. Meanwhile, several leading publishers, among them The New York Times and The Guardian, launched a "Support Responsible AI" campaign, accusing Big Tech of profiting from unlicensed journalism. Against this backdrop, the UK’s Data (Use and Access) Bill, which would allow AI firms to use all published content unless rights-holders opt out, has stalled in Parliament, with over 300 peers demanding AI companies disclose and license any copyrighted material they employ. Baroness Beeban Kidron has proposed an amendment requiring the Secretary of State for Science, Innovation, and Technology to report on the bill’s impact on the creative industries three months after it becomes law, unless the bill is amended first. Supporters of the government’s position, including Sir Nick Clegg, former president of global affairs at Meta, argue that requiring individual licences from all rights-holders would impose an unmanageable administrative burden and could deter AI investment in the UK. They say a broad opt-out regime is necessary for innovation. Opponents counter that unlicensed use of creative content risks harming writers, musicians, filmmakers, and other creators by allowing AI tools to produce similar work without compensation. Prominent artists such as Sir Elton John, Sir Paul McCartney, and Dua Lipa have warned that unrestricted access to their work could undermine their income and legacy. The debate traces back to early AI development, when large technology firms scraped substantial amounts of text, images, and other media from the internet without paying rights-holders. In 2022, the Ninth Circuit Court of Appeals held that "data scraping" does not constitute hacking, meaning it was not illegal to harvest publicly available website content so long as no defensive measures were bypassed. Those scraped datasets were then used to train generative models capable of producing text, images, and music in the styles of established creators. The Department for Science, Innovation, and Technology is conducting a broader consultation and will not amend the bill unless changes are deemed satisfactory for creators. If the bill cannot be agreed upon, it risks being withdrawn. The current impasse reflects a wider tension between supporting AI-driven innovation and protecting the economic interests of the creative industries. Until both Houses reach a compromise or one side concedes, the bill’s future remains uncertain.
  • Recent Achievements

    • Week One Done
      Epaminombas earned a badge
      Week One Done
    • Week One Done
      Prestige Podiatry Care earned a badge
      Week One Done
    • Week One Done
      rollconults earned a badge
      Week One Done
    • One Month Later
      lilred1938 earned a badge
      One Month Later
    • Week One Done
      lilred1938 earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      134
    2. 2
      Xenon
      130
    3. 3
      ATLien_0
      123
    4. 4
      +Edouard
      102
    5. 5
      snowy owl
      95
  • Tell a friend

    Love Neowin? Tell a friend!