|
But you do it manually. (and I think it complains.)
CLR: Removes tough Java-based stains fast!
|
|
|
|
|
Uhh, no. WriteOnly only turns off the gettor of a property. A /dev/null is a completely different concept.
|
|
|
|
|
Who would turn off the gettor of a property? It turns them into black holes, and a /dev/null is one too.
CLR: Removes tough Java-based stains fast!
|
|
|
|
|
Someone writing software to control an unbuffered output device? If there's no buffer, you can't change anything that was written out, so the getter is utterly pointless.
You know, every time I tried to win a bar-bet about being able to count to 1000 using my fingers I always got punched out when I reached 4....
-- El Corazon
|
|
|
|
|
Alpha Nerd wrote: It turns them into black holes, and a /dev/null is one too.
Not quite. It turns a property into something akin to a voting box. You put your vote in, and there's no way to get it out. The class the property is defined in gets to do whatever it needs to with the data that comes in.
In a "blackhole" null device, there isn't any processing allowable on the bits that end up in there...
|
|
|
|
|
you're familiar with the software that runs in a black hole?
I want you to write an article on this, that is assuming you can get it out of there.
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
Yes, I have SEEN the other side! Nothing much to see, it's pretty dark...
|
|
|
|
|
Dave Kreskowiak wrote: it's pretty dark...
are you sure? if it sucks everything in, and never lets go, it must be bloody light
in there.
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
I think the light is processed into something else. I couldn't tell what though, because, like, there's no light!
|
|
|
|
|
Aha, I see.
Or actually maybe I don't, lacking some light??
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
I'm familiar, hence I'm going to write few lines explaining..., but, wait, maybe I'm too close to, s**t....................................
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
Unless you do this:
Public WriteOnly Property example As Object<br />
Set(ByVal value As Object)<br />
' Do Nothing Here, Process Nothing Here<br />
End Set<br />
End Property
CLR: Removes tough Java-based stains fast!
|
|
|
|
|
Dave Kreskowiak wrote: Not quite. It turns a property into something akin to a voting box. You put your vote in, and there's no way to get it out.
But the Get accessor only returns it. Get does not remove the item.
CLR: Removes tough Java-based stains fast!
|
|
|
|
|
It is not a surprise, given that VB itself is a horror.
Vasudevan Deepak Kumar
Personal Homepage Tech Gossips
A pessimist sees only the dark side of the clouds, and mopes; a philosopher sees both sides, and shrugs; an optimist doesn't see the clouds at all - he's walking on them. --Leonard Louis Levinson
|
|
|
|
|
The best use for write-only things, in general, is when you are dealing with real-time control interfaces. Some devices allow you to save data to a memory location or port and that sets control bits in an external device. As far as the external device is concerned, it is an input-only deal; from the program's viewpoint it's write-only and any attempt to read would be undefined or return garbage.
One logical use for a write-only property would be to control interfaces with external hardware. You would define a class encapsulating the hardware access and anything that writes to the hardware without any chance of being able to read the real-time results back, would logically be marked as WriteOnly. This is fairly common when using some PIC chips, DSP chips and assorted other devices. In my DSP applications, marking output data as WriteOnly would make perfect sense, since once it is sent to the buffer, it goes out the sound interface and does not exist anywhere that is accessible to the software. (Note: I haven't done that, since I knew it was essentially write-only and never thought I might try to read it again.) To me, marking a property as WriteOnly in a VB, C, C# or any other language very clearly tells everyone not to even bother to read it back because the data no longer exists.
Another use for WriteOnly properties would be when dealing with highly asychronous processes, but I won't go into that here.
So, yeah, if you're dealing with stuff in your own application's memory, WriteOnly may not make much sense, but if you are dealing with control systems and external devices, it may well make perfect sense.
The PetroNerd
Walt Fair, Jr.
Comport Computing
Specializing in Technical Engineering Software
|
|
|
|
|
I suppose a write-only property (in whatever language, but preferably C#) could be used when defining something like a queue (Enqueue) or a stack (Push). (Though not recommended.)
|
|
|
|
|
I quite often use write only properties in C#
Consider this:
Object A depends on an internal state and also needs an Object B for whatever it does. Object B inherits from a baseclass or interface, so there are many classes that may be used to create an instance to use as object B. Hardcoding it in A is not an option. Instead I use a write only property of A to pass a suitable object B at runtime. Object A then reinitializes it's internal state and prepares B for its use.
I do not want to have access to object B anymore. It is not needed and indeed any tampering with B would have a bearing on A's state. With a write only property this problem cannot arise.
|
|
|
|
|
Is there a reason for this appearing all over the code???
try
{
if (something is wrong)
throw new exceptionaboutwhateveriswring();
...
...
...
continue work
}
catch (whatever exception was just thrown)
{
Console.WriteLine(information about the error);
}
|
|
|
|
|
Hi,
that is a very clever piece of code. The normal approach:
if (!something_is_wrong) {
} else {
}
has several shortcomings:
1. the tests use negative statements, so they are error prone.
2. the error messages do not include class names and line numbers automatically
3. problems don't get encapsulated in objects
4. it disregards the exception trapping functionality available in Visual Studio
So basically it is old style, and against all modern OO principles.
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
Would this be better?
if (somethingIsWrong)
{
}
if (somethingElseIsWrong)
{
}
Because I don't see the point of throwing a exception only to catch it in the same place.
1: No more negative statements
2: The errors would be something that doesn't deserve exceptions like incorrect input (IIRC)
3: This shouldn't be a problem
4: Don't know
|
|
|
|
|
I'm afraid you've missed the joke icon.
The coding horrors forum was the right place to put it.
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
I haven't been here long enough to recognize all these icons...
|
|
|
|
|
No problem. You'll catch on soon enough.
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
"You'll catch on soon enough"
.
|
|
|
|
|