Re: Why properties cannot be used as ref or out arguments

Dean Cleaver <[email protected]> Tue, 11 Mar 2008 00:12:33 +1300
Newsgroups gmane.comp.windows.devel.dotnet.clr
Message-ID <4543A775711185429E59B18055D41674232262@sxslakl004.xceptionsoftware.com>
Could cut the 10 lines down to about 7, but still won't change the fact
that it's not a one line function call. Particularly because the two
properties I need changed are interlinked - myobject.Property and
myObject.PropertyIsNull. And it returns a Boolean depending on whether
or not there was an error, which is independent of the above two
properties, but of course those properties are closely tied.

This is in a project of about 500,000 lines of code, so I don't want to
just use nullable properties as there is too much code to check over.

Dino

-----Original Message-----
From: Discussion of development on the .NET platform using any managed
language [mailto:[email protected]] On Behalf Of Shawn
Wildermuth
Sent: Tuesday, 11 March 2008 00:06
To: [email protected]
Subject: Re: [DOTNET-CLR] Why properties cannot be used as ref or out
arguments

I know its not terribly efficient, but couldn't you return a simple
struct
or anonymous type with the multiple pieces of information?

Thanks,

Shawn Wildermuth
http://adoguy.com
http://wildermuthconsulting.com
http://geekdinners.com
Microsoft MVP (C#), MCSD.NET, Author and Speaker

The Silverlight Tour is coming to a city near you!

-----Original Message-----
From: Discussion of development on the .NET platform using any managed
language [mailto:[email protected]] On Behalf Of Dean
Cleaver
Sent: Monday, March 10, 2008 7:00 AM
To: [email protected]
Subject: Re: [DOTNET-CLR] Why properties cannot be used as ref or out
arguments

Heh - cool - but as this website is entirely C#, I can't see Erlang
being of use, but the concept is interesting :)

Dino

-----Original Message-----
From: Discussion of development on the .NET platform using any managed
language [mailto:[email protected]] On Behalf Of Barry
Kelly
Sent: Monday, 10 March 2008 23:58
To: [email protected]
Subject: Re: [DOTNET-CLR] Why properties cannot be used as ref or out
arguments

Dean Cleaver <[email protected]> wrote:

> Problem is my variables are of differing types... not that I can tell
> from your code snippet, but It seems they are expected to be the same
> type?

Erlang is dynamically typed. However, more generally, tuples are
structurally typed, and each field can have a separate type - that's
what makes them different to arrays. In statically typed functional
languages, where tuples are common, the type of e.g. ("Barry", "Kelly")
would be (String, String).

> -----Original Message-----
> From: Discussion of development on the .NET platform using any managed
> language [mailto:[email protected]] On Behalf Of Jon
Skeet
> Sent: Monday, 10 March 2008 22:56
> To: [email protected]
> Subject: Re: [DOTNET-CLR] Why properties cannot be used as ref or out
> arguments
>
> Dean Cleaver wrote:
> > Yeah - getting my head around it now. Sadly, it's not VB I wanted it
> > for.
> >
> > Is a shame- looks like I will have to declare 2 variables, pass them
> in,
> > and then analyse the returned responses to achieve what I want -
takes
> > the "ideal" 1 line call to about 7 or 8 at least - was trying to
> > encapsulate a call, but it might not be feasible.
>
> Sounds like an argument for tuple return types:
>
> (FirstNameProperty, LastNameProperty) =3D SplitName(FullName);
>
> :)
>
> (Can you tell I've been learning Erlang? ;)
>
> I've no idea how much work is required either in terms of language
> design or CLR modifications to support this - I suspect it would be
> feasible in "language only" but a lot more elegant with CLR
integration.
>
> Jon
>
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> This list is hosted by DevelopMentor(r)  http://www.develop.com
>
> View archives and manage your subscription(s) at
> http://discuss.develop.com
>
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> This list is hosted by DevelopMentor(r)  http://www.develop.com
>
> View archives and manage your subscription(s) at
http://discuss.develop.com

-- Barry

--
http://barrkel.blogspot.com/

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
This list is hosted by DevelopMentor(r)  http://www.develop.com

View archives and manage your subscription(s) at
http://discuss.develop.com

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
This list is hosted by DevelopMentor.  http://www.develop.com

View archives and manage your subscription(s) at
http://discuss.develop.com

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
This list is hosted by DevelopMentor(r)  http://www.develop.com

View archives and manage your subscription(s) at
http://discuss.develop.com

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
This list is hosted by DevelopMentor=AE  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com