Thanks,
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click
Dim s As String
s = "blah"
Dim t As Type
t = s.GetType
Dim obj As Object
obj = System.Activator.CreateInstance(t) 'Missing Exception
Unhandled - No parameterless constructor defined for this object.
obj = "hello"
s = DirectCast(obj, String)
RichTextBox1.Text = s
End Sub
You're getting the exception because, really, there's no parameterless
constructor in String (try for yourself, type "Dim S As New
String(" ... and you'll see).
Also, when you assign "hello" to obj, a new string object is created
and it's *that* object that is assigned to s, in the end. I guess what
you want is:
<aircode>
Dim S As String = "Blah"
Dim T As Type = S.GetType
Dim O As Object = _
System.Activator.CreateInstance(T, "hello".ToCharArray)
S = DirectCast(O, String)
</aircode>
But I still don't get the point, unless you want to instanciate
something other than a string...
HTH.
Regards,
Branco.
The problem is exactly as the message indicates, the string type has
no public parameterless constructor. You need to use one of the
possible constructors, for example the one taking a character array:
obj = System.Activator.CreateInstance(t, New Object()
{"hello".ToCharArray()})
Because System.String has no parameterless constructor... In other
words, you can't call new String() on a string. You need to pass in
something like this:
obj = System.Activateor.CreateInstance (t, New Object[] {"Hello"})
> s = DirectCast(obj, String)
> RichTextBox1.Text = s
> End Sub
HTH,
--
Tom Shelton
Is the New constructor called by default for a string when you use
s="blah". Is this because it has a default constructor? This cannot
be done with all Types right? I am going to list what I thought was
going on in my code below, it would probably be way too long to answer
these questions here?
Thanks for earlier answers, they were all really good. I could
probably try and plug my way through VB and have no idea what I am
doing, maybe that is why VB is popular?
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click
Dim s As String 'Not sure exactly what this
does behind the scenes, just know that you have to do it?
s = "blah" 'Somehow stores
(character array) into a String Type
Dim t As Type 'Not sure what it does
behind the scenes, but makes a variable that can hold a type?
t = s.GetType 'Get what type a string is,
which not sure what that would look like?
Dim obj As Object 'Dimension a non-specific
object that can store just about anything, not sure how it does it?
obj = System.Activator.CreateInstance(t) 'Create
instance of the type stored in t, and set to be obj, is there another
way to just
'dimension with the same type here rather then have to instantiate it?
obj = "hello" 'If obj is now a string
type I should be able to assign a value to it
s = DirectCast(obj, String) 'VB somehow switches types
RichTextBox1.Text = s 'assigns a string to a
richtextbox
End Sub
It allocates a reference to a string and clears it to Nothing. What
does that mean? Well, a string is a reference type, so it lives on
the heap (the dynamic data store). So, what you are really setting
aside is a variable that can point to a location on the heap that
holds a string. When the string is assigned and the memory is
allocated, then the reference will then contain the address of the
string...
> s = "blah" 'Somehow stores
> (character array) into a String Type
While string is a reference type, it is treated in some ways like a
value type by the compiler. This is one of those ways. Your
assignment above, is really equivalent to:
s = New String ("blah".ToCharArray())
But, because that would be a pain to type all the time the compiler
gives a break on it's syntax.
> Dim t As Type 'Not sure what it does
> behind the scenes, but makes a variable that can hold a type?
Yep. You go it that's what it does.
> t = s.GetType 'Get what type a string is,
> which not sure what that would look like?
Look at the docs for System.Type. It is an object that can be used to
discover a lot of information about the type of an object.
> Dim obj As Object 'Dimension a non-specific
> object that can store just about anything, not sure how it does it?
It does it by the power of polymorphism. In .Net everything derives
from System.Object. When you don't explicitly inherit from another
object, then you are inheriting from System.Object. Because of that,
you can store any .net object in a variable of type object. Of
course, you functionality is limited to that defined by the
System.Object interface :)
> obj = System.Activator.CreateInstance(t) 'Create
> instance of the type stored in t, and set to be obj, is there another
> way to just
>
> 'dimension with the same type here rather then have to instantiate it?
I'm not sure what you mean? With the string you could have just done:
Dim s2 As String = s
Now, with other reference types you might be suprised to learn that a
change to s would effect s2. But, that isn't the case with string.
It's another one of those places where the runtime treats string a
little more like a value type. Anyway, if you look in the docs about
string interning, then you will get an idea of what I'm talking about.
> obj = "hello" 'If obj is now a string
> type I should be able to assign a value to it
It's not a string type - obj is type object. You can assign anything
you want to it because everything in .net ultimately derives from
object.
> s = DirectCast(obj, String) 'VB somehow switches types
DirectCast will essentially make sure that the object your casting is
really of the type you are wanting to convert it too and if it is make
the assignment. If it isn't you get an exception.
> RichTextBox1.Text = s 'assigns a string to a
> richtextbox
> End Sub
I hope this helps somewhat. There is a lot more that could be said
about this, but I didn't want to go to deep. If you have any
questions, feel free to ask again :)
--
Tom Shelton
Tom, you gave me a better understanding in one answer then I have been
able to get through reading the books. I'm sure that I will have more
questions :)
.NET doesn't support variants
-Aaron
Good thing to. Variant was evil :)
--
Tom Shelton
Variants had their time and their place. I used them when reading data from
a database, because in VB, there was no way to set an integer to Null or
Nothing, and when dealing with data, there's a big difference between Null
and 0.
Now I use Nullable Types, and am much happier because they are so specific.
:-D
Robin S.
Ts'i mahnu uterna ot twan ot geifur hingts uto.
I realize that they had their place (notice the smiley). The problem with
them was that they got over used - often by mistake, remember this one:
dim i, j as integer
ops, i is a variant.
> Now I use Nullable Types, and am much happier because they are so specific.
>:-D
Nullable Types rock. Now if VB.NET would get anonymous methods, it would
almost be usable :)
C#:
int [] GetValues (int[] values, int value)
{
return Array.FindAll ( values, delegate (int i) { return (i == value); } );
}
// calling code
Array.ForEach ( GetValues (6), delegate (int i ) { Console.WriteLine (i); } );
Love it!
--
Tom Shelton
just because you worked with some dipshit programmers; it doesn't mean
that microsoft needed to change the language without reason
it's like.. the whole datareader .read method is it?
I read something in MS Press book that said 'because you dipshits are
too stupid to do a .movenext method we are going to make it easier by
just having a .read method'
I'm like..
FUCK THIS MOTHER FUCKING COMPANY THAT BRINGS VB DOWN TO THE LOWEST
COMMON DENOMINATOR
UNNECESSARY CHANGE IS NEITHER NECESSARY OR SEXY
TAKE YOUR DOTNET AND SHOVE IT
DOTNET DOESNT EVEN RUN ON ANY OF THESE OPERATING SYSTEMS, WHICH HANDLE
VB6 JUST PERFECTLY
windows 95
windows 98
windows nt
windows me
windows 2000
windows xp
windows vista
seriosly here.
I've got a random machine; how do I determine which version of the
framework is on it?
I've got a random machine; how do I determine which version of the
framework is on it?
I've got a random machine; how do I determine which version of the
framework is on it?
THERE IS NO FUCKING ANSWER, MICROSOFT SHOULD HAVE MADE THIS PRACTICAL
for example you need to remember that R2 ships with 2.0 and you've got
to remember that XP ships with 1.0
I MEAN IT DOESNT SHOW UP VIA ADD / REMOVE PROGRAMS
please tell me, el wisest dotnet _FAGS_
i've got a random computer right here under my desk, please tell me
how to determine which version of the framework is on it.
because when you give me the wrong answer?
_THAT_ is when I'm going to swear off the DOTNOT framework.
THERE IS NO ANSWER; IT IS BASICALLY IMPOSSIBLE TO DETERMINE WHICH
VERSION OF THE FRAMEWORK IS ON A PARTICULAR MACHINE
Hi,
Maybe I'm not understand the intent of your question, but why not just
execute RichTextBox1.Text = "Hello"?
Anyway, here you go.
Dim typ As Type = GetType(String)
Dim arg As Object() = {"Hello".ToCharArray()}
Dim obj As Object = Activator.CreateInstance(typ, arg)
Dim str As String = DirectCast(obj, String)
Here's an alternate method.
Dim typ As Type = GetType(String)
Dim arg As Object() = {"Hello".ToCharArray()}
Dim obj As Object = typ.GetConstructor(New Type()
{GetType(Char())}).Invoke(arg)
Dim str As String = DirectCast(obj, String)
Brian
I never did
Dim i, j as Integer
I don't even do that now, even though I can. Too anal-retentive. I want it
to be really, really clear.
And I agree; I think anonymous methods are cool. I've seen them in action.
Of course, it doesn't kill me to do it "the hard way". (As Nietzsche said,
"What doesn't destroy me makes me stronger." Of course, he was a nutcase.)
Robin S.
(King of Russia to *you*)
Ts'i mahnu uterna ot twan ot geifur hingts uto.
-----------------------------------------------
<aaron...@gmail.com> wrote in message
news:1170863760.0...@q2g2000cwa.googlegroups.com...
Hi,
And with lambda expressions in C# 3.0 it would look like:
int [] GetValues (int[] values, int value)
{
return Array.FindAll ( values, i => i == value);
}
// calling code
Array.ForEach ( GetValues (6), i => Console.WriteLine(i) );
Love it more!
Brian
If Aaron WAS the guru he makes himself out to be, he would simply open the
Control Panel, go to Add/Remove Programs and 'scroll down' to the listing
that tells him the version of the framework that he has installed. Each
framework installs into seperate folders under the
Windows\Microsoft.net\Framework directory structure so users can implement
EITHER framework. Users can even set which framework they want their
application to use should they so choose, but I'm not going to continue on
that topic here. So though he is off-topic, he STILL hasn't said anything
that is even CLOSE to being realistic or true.
And just to make sure that my post is 'on-topic' :), Aaron likes to waste
memory by using variants in his work, making his VB6 applications run slower
and hog memory that could be put to better use by the operating system doing
more meaningful tasks.
Bruce
"RobinS" <Rob...@NoSpam.yah.none> wrote in message
news:tPOdnYTvTO2CllfY...@comcast.com...
what kindof fucking idiot are you?
LIKE SERIOUSLY
windows xp, out of the box; go add/remove and _PLEASE_ tell me if it
has the framework.
server 2003 rs, out of the box; go add/remove and _PLEASE_ tell me if
it has the framework.
from what I've seen-- you have to 'REMEMBER' that XP and Server 2003
are exceptions to that rule.
PLEASE BUDDY; KEEP GUESSING.
because if you can't even mother fucking tell me what version of the
framework is on machine X then WHY IN THE FUCK WOULD YOU USE THIS
LANGUAGE?
AND IT SURE DOESNT SHOW UP IN ADD / REMOVE PROGRAMS
I don't use variants
I don't need better performance (and for the record, my apps launch
faster than yours LoL)
and I don't have memory shortages.
NICE TRY DIPSHIT.
why would they try to sell us on PERFORMANCE?
real quick -- if you could have a programming language that was
_MAYBE_ 30% faster at _SOME_ tasks.. but it only ran on 1/4 of the
operating systems or applications... would you do it?
I haven't had a performance problem with BASIC since, uh-- well the
day I started writing BASIC back in the commodore 64.
SO LICK A NUT DICKWAD
It's like trying to sell a freezer to an eskimo -- WE JUST DO NOT NEED
IT AT ANY PRICE
mother fuckers gave us 1/4 of the code portability-- can we even run
VB 2005 apps on Vista yet?
can I cut and paste code from VB 2005 into an Excel workbook? ROFL
can I cut and paste code from VB 2005 into an ASP page? ROFL
can I cut and paste code from VB 2005 into a DHTML page? ROFL
can I cut and paste code from VB 2005 into a DTS package? ROFL
can I _SAVE_ a DTS pacakge as a VB 2005 module? ROFL
can I cut and paste code from VB 2005 into OUTLOOK? ROFL
can I cut and paste code from VB 2005 into WORD? ROFL
can I cut and paste code from VB 2005 into ACCESS? ROFL
can I cut and paste code from VB 2005 into SQL AGENT? ROFL
can I cut and paste code from VB 2005 into a VBS FILE? ROFL
your language is for QUEERS AND RETARDS; you do not even know what
operating systems your shit will work on.
-Aaron
WHY DOES VISUAL STUDIO TAKE TEN MINUTES TO LAUNCH?
WHY DOES VISUAL STUDIO TAKE TEN MINUTES TO LAUNCH?
WHY DOES VISUAL STUDIO TAKE TEN MINUTES TO LAUNCH?
WHY DOES VISUAL STUDIO TAKE TEN MINUTES TO LAUNCH?
WHY DOES VISUAL STUDIO TAKE TEN MINUTES TO LAUNCH?
WHY DOES VISUAL STUDIO TAKE TEN MINUTES TO LAUNCH?
WHY DOES VISUAL STUDIO TAKE TEN MINUTES TO LAUNCH?
WHY DOES VISUAL STUDIO TAKE TEN MINUTES TO LAUNCH?
WHY DOES VISUAL STUDIO TAKE TEN MINUTES TO LAUNCH?
WHY DOES VISUAL STUDIO TAKE TEN MINUTES TO LAUNCH?
WHY DOES VISUAL STUDIO TAKE TEN MINUTES TO LAUNCH?
WHY DOES VISUAL STUDIO TAKE TEN MINUTES TO LAUNCH?
WHY DOES VISUAL STUDIO TAKE TEN MINUTES TO LAUNCH?
WHY DOES VISUAL STUDIO TAKE TEN MINUTES TO LAUNCH?
WHY DOES VISUAL STUDIO TAKE TEN MINUTES TO LAUNCH?
WHY DOES VISUAL STUDIO TAKE TEN MINUTES TO LAUNCH?
F
U
C
K
D
O
T
N
O
T
No. It doesn't ship with the framework. It was available via windows
update, and some oem's choose to install it.
--
Tom Shelton
thanks
-Aaron
No. It's WinNT under 2K.
--
Tom Shelton
Bruce
"Tom Shelton" <tom_s...@comcast.net> wrote in message
news:1170964846.3...@k78g2000cwa.googlegroups.com...
The problem, of course, is that you are right. It always irritates
narcissistic, delusional, insecure people when they're wrong and you're
right. Not that I'm saying anybody around here is like that. But if they
were, I bet you'd irritate them enough for them to respond to you like, I
don't know, 6 times.
Robin S.
(King of Russia)
----------------------------------------------------------
"Bruce W. Darby" <krac...@atcomcast.net> wrote in message
news:Yp6dnZ8W9bBksVbY...@comcast.com...
I didn't know that... I have never done a 2K upgrade, always
installed it clean.
--
Tom Shelton
Bruce
"RobinS" <Rob...@NoSpam.yah.none> wrote in message
news:BLidnegEr_CDtFHY...@comcast.com...
Bruce
"Tom Shelton" <tom_s...@comcast.net> wrote in message
news:1171008360....@j27g2000cwj.googlegroups.com...
but it doesn't change the point of the matter-- that you dipshits
STILL can't tell me a simple single way to determine what version of
the framework is on machine X.
for example, Server 2003 ships with 1.1 right? Does 1.1 show up under
add/remove programs?
when these mother fuckers stop GUESSING when it comes to strategy is
when I stop bitching about this DOTNET crap.
All I know is that they try to convince us that performance is the
best reason to migrate-- and it's not a benefit because 2002,2003 ,
2005 are _DOTNOT_ faster than vb6.
it's like trying to sell a freezer to eskimos
they sell us something that we DO NOT NEED, WE DID NOT ASK FOR IT.
and it doesn't run in 1/4 of the places that VB6 / VBS / VBA ran.
VB6 = VBS = VBA
VB 2002, 2003, 2005 = NOT PRACTICAL
again, you fucking dipshits tell me a single standard way to determine
'which version of the framework is on machine X' and I will STFU for a
_WEEK_
-Aaron
it's like.. VolksWagen selling Beetles with 2 missing wheels-- because
they 'had to invent a new vanagon'
ITS LIKE FUCK YOU GIVE ME MY PROGRAM BACK AND GIVE IT FOUR WHEELS
DOTNET IS DOTNOT PRACTICAL TO DEPLOY, DEVELOP OR DESIGN.
AND DOTNET IS DOTNOT FASTER THAN VB6.
-Aaron
Robin S.
Ts'i mahnu uterna ot twan ot geifur hingts uto.
-----------------------------------------------
"Bruce W. Darby" <krac...@atcomcast.net> wrote in message
news:3uydnTXQTt6S81HY...@comcast.com...
is there a simple, standard way to determine 'which version of the
framework is on this machine'
it doesn't always show up under add/remove programs
and it's not always in the windows directory
anyone?
-Tom
"RobinS" <Rob...@NoSpam.yah.none> wrote in message
news:A_ednT1LqeZKh1DY...@comcast.com...
Robin S.
-------------------
"Bruce W. Darby" <krac...@atcomcast.net> wrote in message
news:HPOdnaQH4vxJulDY...@comcast.com...
HOW DO I DETERMINE THE VERSION OF THE FRAMEWORK ON MACHINE X?
STFU IF YOU DO NOT GIVE ME AN ANSWER, BECAUSE ALL THE ANSWERS I HAVE
HEARD SO FAR _DO_NOT_WORK_
-Aaron
I highly doubt that they didn't work... The framework installes under
%systemroot%\Microsoft.Net\Framework. Each version of the framework will be
in it's own folder. If you want to know all the details go here:
http://support.microsoft.com/kb/318785
That will give you all the released versions. You can get the version you are
currently running under using System.Environment.Version. You can also look
at the registry under HKLM/Software/Microsoft/.NETFramework.
The above should be more then enough information to figure this out.
HTH
--
Tom Shelton
that's just funny.. I've had a dozen people talk about this; and not
one of them could come up with systemroot.. I've been waiting for that
answer..
I don't think that systemroot works under 9x.. and WIndows 98 is
supported for the framework 1.0 and 1.1 right???
http://ams.bo.infn.it/phpmanual/en/install-windows.html
-----------------------------------------------------------------------------------------
Copy the file, 'php.ini-dist' to your '%WINDOWS%' directory on Windows
95/98 or to your '%SYSTEMROOT%' directory under Windows NT or Windows
2000 and rename it to 'php.ini'. Your '%WINDOWS%' or '%SYSTEMROOT%'
directory is typically:
-----------------------------------------------------------------------------------------
I've got a windows 95 media center box; I will never ever ever ever
give it up... never ever ever. of _course_ it's not on the network /
internet. but it still works FINE and I'm not going to throw it away
just because it's 10 years old
it supports picture in picture and about_EIGHT_ different connections,
it's got quadxthree RCA cables, dual coax and dual s-video.
it's got a video card the size of a 1u server
it's an absolute beauty
it's got remotes and keyboards-- it's a $4,000 machine.
when they start making media center boxes with _EIGHT_ different
viewing connections is when I give this box up
when Microsoft stops trying to strong arm us into retiring their old
software-- is when I lay down my arms
oh, does Tom know more about the .net framework than _MICROSOFT DOES_?
BUT IT DOES NOT SHOW UP THERE SOMETIMES
and MIcrosoft has done _NOTHING_ to push the framework out to
everyone.
under windows update, it is listed as OPTIONAL SOFTWARE-- WHY NOT MAKE
IT MANDATORY?
oh, is it antitrust concerns?
THEN SPLIT UP YOUR FUCKING COMPANY, BECAUSE YOU ARE NOT BIG ENOUGH TO
FIX BUGS IN MICROSOFT ACCESS
google 'create proc sphappy'
I mandate that other developers don't use the proc abbreviation.
DO YOU KNOW WHY?
BECAUSE MICROSOFT IS TOO FAT AND LAZY TO FIX BUGS
THEY ARE TOO BUSY _CENSORING_ PEOPLE THAT SPEAK THE TRUTH-- TO FIX A
MEASLY FUCKING BUG IN MICROSOFT ACCESS 2000,2002 and 2003.
AND THEN THEY MADE ACCESS 2003 NOT COMPATIBLE WITH SQL 2005?
WHAT THE FLYING FUCK IS WRONG WITH THIS COMPANY?
I highly doubt that you've pulled the big blue MS DILDO out of your
ass
MS HAS FUCKED US ALL BRING BACK VB6 OR EAT SHIT ON THE NEWSGROUPS
FOREVER