|
Roger Wright wrote: since objects are passed by reference
Objects are not passed by reference. Everything will be passed by value. But for reference types, the value will be a reference.
Roger Wright wrote: public frmShowForm(Recloser recshow) //Test page to demonstrate passing a Ref object
{
Recloser RecShow = new Recloser();
RecShow = recshow;
label1.Text = RecShow.Serial;
this.label2.Text = RecShow.Mfr;
this.label3.Text = RecShow.Type;
this.label4.Text = RecShow.Vrated;
this.label5.Text = RecShow.BIL;
You don't need Recloser RecShow = new Recloser(); here. Just use the recshow object.
Best wishes,
Navaneeth
|
|
|
|
|
Dear friends ...
i encrypted and decrypt file with CryptoStream.
if some one modified the data in the encrypted file.(edit the data with notepad)
now i decrypt the file (it is not possible... i understad that) chunk by chunk. at the last while closing the file (CryptoStream.close())
i get an error .. now i could not delete the file becase it is Used by another porcess ... and i could not close the file for deleting, because closing stream throws error.
FileStream fStreame = new FileStream(sDestinationFile, FileMode.Create);
CryptoStream cStream = new CryptoStream(fStreame, alg.CreateDecryptor(), CryptoStreamMode.Write);
try
{
int readBytes = rStream.Read(bValues, 0, nBuffersize);
cStream.Write(bValues, 0, readBytes);
}
catch(Ex)
{
}
finally
{
rStream.Close();
cStream.Close();
}
please suggest me something...
by
Joe
|
|
|
|
|
Hi,
could you post the error you get while closing the stream?
Regards
Sebastian
|
|
|
|
|
Thanks for ur replay..
"Length of the data to decrypt is invalid."
stak trace
-----------
at System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount)
at System.Security.Cryptography.CryptoStream.FlushFinalBlock()
at System.Security.Cryptography.CryptoStream.Dispose(Boolean disposing)
at System.IO.Stream.Close()
at PAW_ENC.AES.DecryptFileFromPosition(String sSourceFile, String sDestinationFile, Byte[] bIV, Byte[] bkey, Int64 lPosition)
|
|
|
|
|
Well it seems you didn't post the complete code. You are closing a rstream but I couldn't find the rstream in your code. Which stream is this?
|
|
|
|
|
I have found two ways to populate a treeview from a database. The first sets up a new class for each hierarchal level. Each class then contains a list of the associated child nodes. The database is queried once, then the records are dumped into the instances of the classes. This is the method used here:
Populating a TreeView Control from the Database[^]
The second way I found of populating the treeview is to have a number of methods that query the database. Each query includes filters the data by the value of the parent node, such as here:
http://www.dotnetspider.com/resources/28676-Populate-TreeView-From-DataBase-Using-Recursive.aspx[^]
My question is which way is preferable? I have a large about of data that I want work with, say, a hundred parent nodes that will drill down eight to ten hierarchal levels. It seems creating instances of a class for each record would use a lot of memory, but the second option has a lot of back-and-forth from the database. The data is coming from an oracle database, if that matters any.
|
|
|
|
|
Are you wanting to initially add EVERY node in the treeview or just the parent nodes? In a large record set, it is not wise to add all the child nodes at the beginning.
If my answer has helped you, one of my articles may also be a help. Also remember that your best friend's name is google.
|
|
|
|
|
I thought that if I loaded everything up front, then the user would not be slowed down by the the constant updating of the treeview, but I will try you suggestion. Also, I did use Google, that's how I got the information that I posted in the question.
|
|
|
|
|
Issue: Two users both print to a printer. It works well for one user. The other user it doesn't. The one that doesn't work has to click on the print button twice in the print dialogue. Has anyone heard of this type of issue? If you have, I can provide more details.
printer details:
Canon PS 3 Emulation Printer Driver
version 4.37
Canon iR C4080/ C4580 PS 3
Updated:
I see there is a hotfix:KB916812. Where can I find it? I searched for it. Looks like it has to come from Microsoft support. Looks like that is a 100 bucks.
modified on Wednesday, December 9, 2009 2:20 PM
|
|
|
|
|
Whats the best practice? Sometimes its hard to decide whether to declare a method as virtual when you can't foresee the possible need to override it. Sometimes the decision is clear, but what do you do when its not so clear?
|
|
|
|
|
Anders says they should not be virtual. I say they should be.
|
|
|
|
|
I was thinking about your problem with the collection a few days ago when I was reading about extension methods. Have you tried using those?
|
|
|
|
|
Of course, but they solve a different problem.
|
|
|
|
|
You could go back and change them to be virtual if it turns out you need them to be, right? What's so bad about that?
Having uselessly virtual methods around can only degrade performance and has no benefits..
But I don't determine what gets to be "best practice"
|
|
|
|
|
harold aptroot wrote: change them to be virtual
Only if you have the source code -- I'd love to change built-in .net classes to have virtual members.
|
|
|
|
|
Yes, so would I
But, if you're writing something, you have the source code..
And if you're writing a library, well, all libraries suck anyway (ok then make some things virtual, but that doesn't mean everything should be virtual Just Because)
|
|
|
|
|
I prefer to err on the side of usability (extensability etc.) and let the hardware engineers worry about improving performance.
|
|
|
|
|
PIEBALDconsult wrote: I'd love to change built-in .net classes to have virtual members
For some reason this makes me think you've been coding an ASP.NET porn site.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
If I could devise a better mouse trap, I might; but for now I'll just enjoy the exsting mouse traps.
|
|
|
|
|
If you make it virtual now what happens later on (days, months, years) when you want to modify it? You look at the method, see it's virtual and ask yourself "Has anything overridden this method? If so will this change break those child classes?".
If you make everything virtual automatically then the only way to answer that question is to go through your code base and look. If you only make methods virtual when they need to be then you already know the answer: "Nothing has overridden this because it can't be overridden".
Also, later on it's trivial to add the modifier but difficult to add it for the same reason. Adding it can't break any other code, removing it can.
The same can be said about any question involving code security. In general the safest bet is to go with the most restrictive permissions you can and then loosen them up as needed. Loosening permissions is easy, tightening them is hard.
|
|
|
|
|
I find none of that compelling.
Jimmanuel wrote: Loosening permissions is easy, tightening them is hard.
A consumer of your class is far more likely to want you to loosen than tighten; so make it as loose as practical from the start.
Jimmanuel wrote: will this change break those child classes?".
Let the buyer beware. I'm not responsible for anyone using my code, and if they don't like it, they can write their own.
What's worse is frameworks that are unusable because things are too tight.
|
|
|
|
|
We're not developing frameworks, though. If I break somebody else's code then I've caused problems of unknown severity somewhere else in our application, which is a large distributed enterprise app. If a feature stops working it's not the customer that comes bitching to me; it's the guy sitting next to me, possibly my boss, that shows up asking me why I broke their code. Because of that I try to do everything that I can to ensure that I can't break their code.
|
|
|
|
|
That still sounds like they did something wrong. And you wouldn't discover that unless you demonstrate to them why they shouldn't do what they're doing in such a way that they can't ignore.
Ideally, within the organization, there is someone with a view of the larger picture.
|
|
|
|
|
PIEBALDconsult wrote: That still sounds like they did something wrong
Often times that's true, but usually when it is that developer isn't around anymore to explain themselves and I get to fix it for them.
PIEBALDconsult wrote: Ideally, within the organization, there is someone with a view of the larger picture
and therein lies one of the problems with our organization
|
|
|
|
|
That's much of why I enjoyed being a team of one on my last job.
|
|
|
|