Method Calls On Objects That Aren't "Guaranteed" To Be Instantiated?
Sep 10, 2010
I recently wrote a section of code wherein upon finishing, I received a warning from the compiler telling me that one of my variables is being used before it is assigned a value. In practice, the method call on this object will never be made without the object being instantiated beforehand. Here is the snippet of code
Try
fs = New FileStream(fileName, FileMode.Open)
Dim PolarMatrix As PolarMatrix
PolarMatrix = DirectCast(bf.Deserialize(fs), PolarMatrix)
[code]....
I assume I'm receiving this warning because the first line in the Try section may be the line to throw the error, and the Object will never be instantiated. FileName though, is a variable being passed to this method which has already been checked for errors, so it is guaranteed to be correct. The error I'm expecting to perhaps be thrown comes during the deserialization.
So my question: When warnings are given on objects that the compiler thinks may not have been instantiated, does this overrule the user knowing that a problem will never arise on that line? Is it sometimes necessary to add code simply to appease the compiler?
This is a question I have asked myself many times in the past as I nested using statements 5 deep. Reading the docs and finding no mention either way regarding other disposables instantiated within the block I decided it was a good Q for SO archives.
I'm refactoring VB.NET code where methods routinely run five hundred lines and the references are so tightly coupled that the code defies simple refactoring such as method extraction. And that's why I thought I would try regions within a method body. I just wanted to organize the code for the short term. But the IDE didn't let me (resulted in a compiler error.) I'm just curious as to why? Seems like code regions shouldn't impact the compiler, intellisense etc. Am I missing something? (Still using VS 2005 btw.)
Interesting: This seems to be language specific. It's OK in C# (I didn't check that initially) but not in VB.NET.
public module MyModule Sub RunSnippet() dim a as A = new A (Int32.MaxValue )
[code]....
that gets a compiler error but the C# version is ok.
This should be fairly basic, but say I have a Public property as local variable on my WCF service, and I set this in one call to the service. Is there a way to preserve that data for another call to the service? (Without writing the data to xml or a db, and re-referencing it or anything like that)
Executing the calls from the Winform:
Public Class ClientSideWinForm Private proxy As ServiceReference.Client Private Sub Client_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
What's the best way to dynamically remove method calls at runtime? Essentially what I'd like to do is pass a parameter to my application. Let's call the parameter level. Depending on the value of level, I'd like to essentially remove all the calls that have higher levels. I have the following but was wondering if there were a simpler/cleaner way to remove the calls:
Ideally I'd really like to write something like:
Log5("message")
And just have Log5 work or not call if it doesn't exist. My goal is to actually remove the call. The overhead for calling level 5 logs that test and return is fairly high and I rarely use it.
Module Module1 Delegate Sub Log(ByVal message As String) Public Log1 As Log = Nothing Public Log2 As Log = Nothing
Switching Byref to Byval on method calls I have many warnings raised due to: "Implicit conversion from xxxx to yyyy in copying the value of 'ByRef' parameter zzzz back to the matching argument."
My feeling is that it would be safe to change the function parameters from byref to byval as nothing special is being done with the reference type pointers inside these methods the reference types are simply being used and I think the behaviour would be exactly the same if running with a copy a pointer rather than the original.
Another consideration is that I have two classes which inherit from a base class. The same situation is occuring in that the byref params are causing implicit casting from the base class to the narrower concrete class. Again I can't see any problems with this code running byval either.Does anyone have any tips regarding use of parameters in functions when dealing with reference types?
Some of the other things that are currently being passed around byref in my project are database connection objects i.e. OracleConnection and SqlConnection. Is there any good reason for passing these around byref?
When i run the application i need to extract the information about the sequence of methods or classes the application touches when any event is performed on the application.
I have a MDI Form that has a child form containing a text box. I want to be able to make a call to the TextBox's cut() method on the currentlly active child form. Here's what I have so far, but it is complaining about using ctrl.cut()
What the Win32 API is? I have looked around but no where really outlines what it is. Is it basically a set of procedures, outlined by Microsoft for programmers in order to get services from the operating system? In essence is it the equivalent to making system calls abd and library calls in UNIX? And yes I now Windows makes library calls too.
I have some procedures I want to store in a module and call up to use in the form.My problem is that the radio buttons are not being transferred into the module. I think I need a line of code at the beginning of the method so it has access to all the objects created in the form.
The error I am getting is:[rb#] "is not declared. It may be inaccessible due to its protection level"
rb# are radio buttons that are being used in the main form.form:
I have been using DBTransaction for my current projects that access a single database. However, I read some documentation on TransactionScope and was wondering in which scenario would using TransactionScope be better? Or should I be replacing DbTransaction calls with calls to TransactionScope?
So I have a collection of Razzies created from a Collection of Bloops. I retrieve this collection using a Linq query. Reference:select-certain-properties-into-another-object for the query.I would like to know if it is possible to run a method on all of the newly created Razzies before returning the collection, or even right after, just without using a for-loop.
I tried ths: Dim results = From item In bloops _ Select New Razzie() With _
When the program starts, it checks for the amount of threads the user wants to use to download files with. The threads are then created. When the user chooses a file to download, the threads begin grabbing the file until it's fully downloaded.The problem is, some threads stall right from the start, & just sit there doing nothing.The global work variable is Sync-Locked, then quickly released by each instance, & to my eyes, there is nothing wrong.They are all instances of the same class, & do the exact same thing, so why is it that some run, & others don't?VB.NET is the programming language. They are looping Background workers.I would really like to know why some run, & others don't.btw... they have quick non-blocking sleeps, as well as blocking sleeps to allow others the chance to run (proprietary non-blocking DLL).So all i'm left to think on is that Microsoft's process queuing has some type of bug going on in there someplace....or is there a way to do multiple looping threads where they're guaranteed to run?
Working with System.Cryptography, I'm noticing that data arrays up to a certain size will either conform to the size of the Initialization Vector (IV) or the size of the Key provided. So with a 48-byte Key and a 32-byte IV, up to around 42 bytes of data will encrypt to 32 bytes and 44+ will encrypt to 48 bytes of data. I've tested this with a variety of data arrays, and it seems to always come out the same... but I have a concern that higher byte values in the original array may result in longer encrypted arrays.
how or whether I can construct byte arrays that will be guaranteed to come out of Encryption at a pre-determined size?
Problem that you may have when dealing with two objects that are raising some events. Here, to make it obvious, I am closing the form, but the problem can be experienced with any other 2 classes event. First, what is the problem !
Let suppose that by pressing a button, you want to raise a custom event, then execute a method and then close the form
In that case, you may use a code similar to this
Event BeepIt()
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click RaiseEvent BeepIt()
is it guaranted that a task A started before TaskB will be completed before task B assuming the task do the same level of operatons?or in other words is there a chance that a task B will finish before tast A in the assumption that the task calls the same procedure?
Base class has one field to hold numeric balance value. With 2 methods that accept arguments for adding and subtracting the new input calculating new balance. Sub class has four fields dates, transaction, memo and amount.I have a deposit form, and withdraw form. Each time one transaction is entered it creates an object with sub class fields, then adds to the account collection. My problem is not understanding how to call the deposit/withdraw method and pass the current transaction amount back to the base class to alculate the new balance. Does anyone have any links to information/tutorials on how to perform something like this? As you can see with my code I have tried various different approaches without any success.
I create an Instance of Access to view a report through my app.I would like to check if an Instance of Access has either already been opened by the user, or by the app. If so, use that instance.
Dim oAccess As Access.Application Public Sub CreateAccessInstance() Try[code]...
As it stands now, It creates multple MSACCESS.EXE processes which are running until I exit the app.
I think I just need a push in the right direction. I cannot seem to get my sub from an instance of my class, once instantiated, to run when I click on the button. My Code in the class is
When I click this:Private Sub btnBark_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBark.Click mydawg.bark() End Sub
When developing a Windows Forms Application, I can see in the Application.Designer.vb file where Me.MainForm = Form1, but I can't find where/how Form1 actually gets newed-up.
I am new to WPF and custom controls.I have implemented a custom control in VB with WPF and MVVM based on Davids example: [URL]..I have a custom control libary and a reference to my project to implement my control.I implement my contol in the View via XAML:
Is it possible to change the upperbound of an array once it has been instantiated? I want to change the upperbound in an array so it matches the number of items that hold a value.
I have a customer intranet (ASP.NET / VB) thats instantiating an asp.net session checking various things in the dblogin process. The Intranet has various sub-systems.The marketing sub-system requires an app_role to be assigned to the Intranet user for them to view the section.I need to create a new booking form for this section but the code appears to use a generic form which is use throughout the site in various other sections. So its not a good idea to ammend what is currently there.Create a new application in C# / ASP.NET and also in IIS. (rather than a new site, create an app within the Intranet site in IIS)Will I be able to check for the session thats currenting set in the cookie?If the session is open then the user is able to see the Intranet and I assume I will need to do some checks for the app_role too.I am simply going to put the URL for the app in the menu for marketing and then do another check just incase someone gives the URL to someone who doesnt have access to the menu.Will i be able to check and use the cookie thats been instantiated by another application?
Can you raise events from a class that has only shared members and doesn't get instantiated? I originally had the class members non-shared and created instances of the class where I need them. I had the events being raised and everything worked as expected. But as the class members are actually application level and do not need instancing, I converted all members in the class to shared so they could be accessed from anywhere in the program without creating an instance of the class. But WithEvents requires the creation of a class instance. I've done that and it seems to work fine when using an instance. And since I need the events handled in only one class, I can create the instance in that class and let all other areas access the class directly, without creating an instance.