473,395 Members | 1,688 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

C# struct Constructors As Shown in IntelliSense? (M'soft Rep PLease)

When a struct is created in C# and a parameterized constructor defined, the
IntelliSense editor shows only the syntax for the parameterized constructor
in tooltips, but not for the default constructor which appears to still
exist. If this is not designed behavior, is it a bug or am I misusing my
struct?
If it is by design, could you please explain? I realize the behavior of a
struct, as regards constructors, is different from that of classes in that a
class will not retain an automatically defined default constructor if a
parameterized constructor is defined by the programmer. The tooltip for
struct constructor options seems to be following the rules for a class?
I'm a bit confused, and any help getting straight would be much appreciated!

--
Peter - [MVP - Academic]

Jul 21 '05 #1
12 2074
Quoting MSDN:

"It is an error to declare a default (parameterless) constructor for a
struct. A default constructor is always provided to initialize the struct
members to their default values."

The gist is that you can't override what the default constructor does. The
framework is boss :)

Cheers,

4Space

"Peter van der Goes" <p_**********@mars.cox.net> wrote in message
news:eA**************@TK2MSFTNGP09.phx.gbl...
When a struct is created in C# and a parameterized constructor defined, the IntelliSense editor shows only the syntax for the parameterized constructor in tooltips, but not for the default constructor which appears to still
exist. If this is not designed behavior, is it a bug or am I misusing my
struct?
If it is by design, could you please explain? I realize the behavior of a
struct, as regards constructors, is different from that of classes in that a class will not retain an automatically defined default constructor if a
parameterized constructor is defined by the programmer. The tooltip for
struct constructor options seems to be following the rules for a class?
I'm a bit confused, and any help getting straight would be much appreciated!
--
Peter - [MVP - Academic]

Jul 21 '05 #2
It SHOULD show the default one the system uses as its AVAILABLE to the
instantiator.

Its an intellisense bug. THey just dont admit it.

If its available to the caller it should be visible to on the intellisense,
if they say otherwise, theyre talkin crrap

"Peter van der Goes" <p_**********@mars.cox.net> wrote in message
news:eA**************@TK2MSFTNGP09.phx.gbl...
When a struct is created in C# and a parameterized constructor defined, the IntelliSense editor shows only the syntax for the parameterized constructor in tooltips, but not for the default constructor which appears to still
exist. If this is not designed behavior, is it a bug or am I misusing my
struct?
If it is by design, could you please explain? I realize the behavior of a
struct, as regards constructors, is different from that of classes in that a class will not retain an automatically defined default constructor if a
parameterized constructor is defined by the programmer. The tooltip for
struct constructor options seems to be following the rules for a class?
I'm a bit confused, and any help getting straight would be much appreciated!
--
Peter - [MVP - Academic]

Jul 21 '05 #3
You must init ALL member fields on a param constructor, but intellisense
does have a bug on not displaying the default constructor for the
instantiator.

You CAN have a line like...

SomeStruct somethingStructure = new SomeStruct();

You dont define the default constructor the system does on structs. But
intelilsense SHOULD show the availability of the default constructor on the
above line but it doesnt. Its saying its not available yet it is. BUG.
"Peter van der Goes" <p_**********@mars.cox.net> wrote in message
news:eA**************@TK2MSFTNGP09.phx.gbl...
When a struct is created in C# and a parameterized constructor defined, the IntelliSense editor shows only the syntax for the parameterized constructor in tooltips, but not for the default constructor which appears to still
exist. If this is not designed behavior, is it a bug or am I misusing my
struct?
If it is by design, could you please explain? I realize the behavior of a
struct, as regards constructors, is different from that of classes in that a class will not retain an automatically defined default constructor if a
parameterized constructor is defined by the programmer. The tooltip for
struct constructor options seems to be following the rules for a class?
I'm a bit confused, and any help getting straight would be much appreciated!
--
Peter - [MVP - Academic]

Jul 21 '05 #4

"news.microsoft.com" <an********@discussions.microsoft.com> wrote in message
news:eg**************@TK2MSFTNGP12.phx.gbl...
It SHOULD show the default one the system uses as its AVAILABLE to the
instantiator.

Its an intellisense bug. THey just dont admit it.

If its available to the caller it should be visible to on the intellisense, if they say otherwise, theyre talkin crrap

I'm afraid I have to be a bit blunt here.
I reposted your issue in a different thread to elicit a response from a
Microsoft rep by eliminating the combative rhetoric. Statements like "they
just don't admit it" with no evidence to support such an accusation, are not
going to help get an answer.

--
Peter - [MVP - Academic]
Jul 21 '05 #5
When I get pissass excuses back like "By design" etc thats just a lazy
halfarsed implentation.

"Peter van der Goes" <p_**********@mars.cox.net> wrote in message
news:#x**************@TK2MSFTNGP12.phx.gbl...

"news.microsoft.com" <an********@discussions.microsoft.com> wrote in message news:eg**************@TK2MSFTNGP12.phx.gbl...
It SHOULD show the default one the system uses as its AVAILABLE to the
instantiator.

Its an intellisense bug. THey just dont admit it.

If its available to the caller it should be visible to on the intellisense,
if they say otherwise, theyre talkin crrap

I'm afraid I have to be a bit blunt here.
I reposted your issue in a different thread to elicit a response from a
Microsoft rep by eliminating the combative rhetoric. Statements like "they
just don't admit it" with no evidence to support such an accusation, are

not going to help get an answer.

--
Peter - [MVP - Academic]

Jul 21 '05 #6

"4Space" <4S****@NoSpam.com> wrote in message
news:SE**********************@news.easynews.com...
Quoting MSDN:

"It is an error to declare a default (parameterless) constructor for a
struct. A default constructor is always provided to initialize the struct
members to their default values."

The gist is that you can't override what the default constructor does. The
framework is boss :)

Cheers,

4Space

Yes, I'm aware of that.
The issue is why the tooltips in the intellisense editor don't show the
retained default version in the case of a struct vs. a class. If a
parameterized constructor is declared in a class definition, the
compiler-supplied default constructor is not retained, and the programmer
must write one if it's needed. In a struct, the compiler-supplied default is
retained after declaration of a parameterized constructor, but its prototype
doesn't show up as an option in the tooltip.
Not exactly a showstopper, but the behavior as reported can be replicated.

--
Peter - [MVP - Academic]
Jul 21 '05 #7
You are right it's a known bug.

Willy.

"news.microsoft.com" <an********@discussions.microsoft.com> wrote in message news:%2****************@TK2MSFTNGP09.phx.gbl...
You must init ALL member fields on a param constructor, but intellisense
does have a bug on not displaying the default constructor for the
instantiator.

You CAN have a line like...

SomeStruct somethingStructure = new SomeStruct();

You dont define the default constructor the system does on structs. But
intelilsense SHOULD show the availability of the default constructor on the
above line but it doesnt. Its saying its not available yet it is. BUG.
"Peter van der Goes" <p_**********@mars.cox.net> wrote in message
news:eA**************@TK2MSFTNGP09.phx.gbl...
When a struct is created in C# and a parameterized constructor defined,

the
IntelliSense editor shows only the syntax for the parameterized

constructor
in tooltips, but not for the default constructor which appears to still
exist. If this is not designed behavior, is it a bug or am I misusing my
struct?
If it is by design, could you please explain? I realize the behavior of a
struct, as regards constructors, is different from that of classes in that

a
class will not retain an automatically defined default constructor if a
parameterized constructor is defined by the programmer. The tooltip for
struct constructor options seems to be following the rules for a class?
I'm a bit confused, and any help getting straight would be much

appreciated!

--
Peter - [MVP - Academic]


Jul 21 '05 #8
Every struct in c# has a default constructor available and you cannot
override or hide it. what sense would it make to show it in intellisense?

--
cody

[Freeware, Games and Humor]
www.deutronium.de.vu || www.deutronium.tk
Jul 21 '05 #9
codymanix <do*********************@gmx.de> wrote:
Every struct in c# has a default constructor available and you cannot
override or hide it. what sense would it make to show it in intellisense?


Intellisense should show you what's available to call. When you've got
as far as new DateTime( then the parameterless constructor should be
one of the options available.

It's not as big a deal as is being made out here, but it's not the
desired behaviour IMO.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too
Jul 21 '05 #10
Obviously you do not understand the purpose of Intellisense.

--

Jack Mayhoff
Microsoft Online Partner Support
Get Secure! - www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.

"codymanix" <do*********************@gmx.de> wrote in message
news:OQ**************@TK2MSFTNGP10.phx.gbl...
Every struct in c# has a default constructor available and you cannot
override or hide it. what sense would it make to show it in intellisense?

--
cody

[Freeware, Games and Humor]
www.deutronium.de.vu || www.deutronium.tk

Jul 21 '05 #11
> Obviously you do not understand the purpose of Intellisense.

intellisense is for help you typing. but in this case intellisense will pop
up when you already typed the whole line just the () are missing

S s = new S(

here at this point, intellisense will pop up. what is the gain? it will help
me writing the closing parenthese!

the second purpose of intellisense is that it informs you about the members
of a class. in the case somebody really doesn't know that a struct always
must have a default ctor maybe.

--
cody

Freeware Tools, Games and Humour
http://www.deutronium.de.vu
[noncommercial and no fucking ads]
Jul 21 '05 #12
Its a bug. It should still popup the ToolTip for the default ctor.

--

Jack Mayhoff
Microsoft Online Partner Support
Get Secure! - www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.

"cody" <de********@gmx.net> wrote in message
news:OT**************@tk2msftngp13.phx.gbl...
Obviously you do not understand the purpose of Intellisense.
intellisense is for help you typing. but in this case intellisense will

pop up when you already typed the whole line just the () are missing

S s = new S(

here at this point, intellisense will pop up. what is the gain? it will help me writing the closing parenthese!

the second purpose of intellisense is that it informs you about the members of a class. in the case somebody really doesn't know that a struct always
must have a default ctor maybe.

--
cody

Freeware Tools, Games and Humour
http://www.deutronium.de.vu
[noncommercial and no fucking ads]

Jul 21 '05 #13

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

42
by: Edward Diener | last post by:
Coming from the C++ world I can not understand the reason why copy constructors are not used in the .NET framework. A copy constructor creates an object from a copy of another object of the same...
10
by: Peter van der Goes | last post by:
When a struct is created in C# and a parameterized constructor defined, the IntelliSense editor shows only the syntax for the parameterized constructor in tooltips, but not for the default...
74
by: Zytan | last post by:
I have a struct constructor to initialize all of my private (or public readonly) fields. There still exists the default constructor that sets them all to zero. Is there a way to remove the...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.