.net - Refactoring A Field Into A Property?
Jun 7, 2012
I am currently learning vb.net for my new job and I have mixed feelings over public fields. I see many arguments about them hurting the encapsulation. In python, the common practice is to keep things simple and use fields when they are enough. If we want to add logic later, we just refactor them into a property without breaking anything for the client code.In the codebase I am working with I see huge classes containing dozen of properties like:
[Code]...
View 2 Replies
ADVERTISEMENT
Mar 3, 2011
So I'm just trying to understand why someone would want to use the shorthand property instantiation
Public Property CarModel As String <-- property
As opposed to
Public CarModel As String <-- variable
View 19 Replies
Aug 5, 2010
I am getting a weird error when trying to run a certain part of my code.
The error is: Field or Property CharSet is Not Found
The Code Is:
<DllImport("user32.dll", CharSet:=CharSet.Auto, SetLastError:=True)> _
Private Shared Function GetClassName(ByVal hWnd As IntPtr, ByVal lpClassName As StringBuilder, ByVal nMaxCount As Integer) As Integer
End Function
View 11 Replies
Feb 13, 2012
I have an 8 bit digital output board used for device controlling. Each external device needs one bit and is controlled by a different application.I have written a class library and the class DigitalOutputPort (VB 2010) that envelopes the driver that manages the 8 bit port. Each device application uses this class, creating its own instance.
In order to set a bit of the digital output port, I have to write a byte to that port: this byte is the bit mask for all 8 bits together: to set HIGH the bit number 0 - 1 - 2, I have to write 7 on the port, to set HIGH all 8 bits, I have to write 256, and so on...
All works fine when only ONE application uses the class. But if two applications want to set its own bit on that port, I get problems because I do not know the current value of all bits set by other applications (the driver has not such function) and, of course, I cannot change one bit without changing all the other (if I do not know the current bit mask)
Normally this looks like a typical case of sharing data between two application and my first idea was to write the current value of the port in a file on the disc, where all application can access and read it. But it seems to be too much heavy for this simple problem. Moreover it could also creates performance ans reliability problem.
Then I though about using a shared field (property) in the class. A shared field preserves its value between all instances of a class: but is it also true between instances from different applications? I cannot find more info about this last point, I have to make same test.
A third way would be that I create just only ONE instance of the class DigitalOutputPort, one for all applications.The first application that needs it, create the object, all other applications will used the already created object.I like more than other this way, but I do not know if and how it can be done.
View 1 Replies
Jul 7, 2009
I have made a front-end application in Visual Basic .NET that will store data entered by the user in a backend Access 2003 Database. The application has other functionality as well.If the user searchs for a previous record that has been stored in the Access Database, I query the Database (SELECT ... ) using an OLEDB Connection and then display the records on a Datagrid on my Form. Everything is working fine, however, the Column Headings of the Datagrid are the Field Names in my Database (FirstName, LastName,...) rather than Caption Values (First Name, Last Name,... )
I tried looking up the net, but most of the topics addressing a similar problems use DAO, and I understand that it is not completely supported in VB .NET. I am fairly new to VB .NET and I am not quite sure how to address the problem or where I am going wrong. I tried using FirstName.Caption but that gives a Runtime error (One or more parameters missing from the Sentence)
View 6 Replies
Apr 15, 2011
I have an Entity Data Model with two entities in it "Roles" and "Users". There is a navigation property from I have a EntityDataSource and a GridView. The EntityDataSource points to the Users entity and has an Include="Roles" parameter.I've added a BoundField in the GridView that points to RoleName, a property of the entity Roles. However, when I execute the code I get the above error.I have used very similar code successfully in another application. Any ideas why this isn't working?
Here is my EntityDataSource:
<asp:EntityDataSource ID="EntityDataSource1" runat="server"
ConnectionString="name=pbu_checklistEntities"
DefaultContainerName="pbu_checklistEntities" EnableDelete="True"
EnableFlattening="False" EnableUpdate="True" EntitySetName="Users" Include="Role">
</asp:EntityDataSource>
And here is the BoundField:
<asp:BoundField DataField="RoleName" HeaderText="Role" SortExpression="RoleName" />
View 1 Replies
Mar 24, 2011
[code] I get this error Name of field or property being initialized in an object initializer must start with '.' How should I write this? Or is there an alternative way of doing this?
View 2 Replies
May 28, 2012
I've got a custom NumericEditor control that has a nullable Decimal property called Value. When I bind a data field to Value, I'd like to retrieve the underlying Type of the data that's bound, so that I can restrict the use of decimal places if the source field is an integral data type.I figure I'd have to do this in the BindingContextChanged event, but how do I get the Type of the data field from the binding itself? My Google-Fu is failing me at the moment.
In short, I'm looking for something like the GetValueType method mentioned in the following question: Simple databinding - How to handle bound field/property change. Winforms, .Net I imagine this method would also be handy if the Value property was an Object.
View 2 Replies
May 21, 2011
In VB.NET, what are the advantages of using the Property keyword rather than:[code]Coming from Java I tend to use this style rather than Property...End Property - is there any reason not to?
View 4 Replies
Nov 15, 2011
My LINQ query is as follows
Dim Query = From t In New XPQuery(Of xUser)(Xpo.Session.DefaultSession)
.Where("Name=John").Select("new (Name as FirstName)")
Unfortunately i get the error No property or field 'John' exists in type 'xUser'.Of course no such property exists in my xUser class, but hot can i fix that?After reading within the DynamicLinq Class i found this function
Function FindPropertyOrField(ByVal type As Type, ByVal memberName As String, ByVal staticAccess As Boolean) As MemberInfo
Dim flags As BindingFlags = BindingFlags.Public Or BindingFlags.DeclaredOnly Or _
If(staticAccess, BindingFlags.Static, BindingFlags.Instance)[code]...
How can i edit my "faulty" query? What am i doing wrong here?
View 2 Replies
Mar 4, 2011
I needed to create an Access table programmatically an was able to by using Martin Xie's post but how can I set the Field1 - Field Property Index to Yes (No Duplicates)?
[code]...
View 3 Replies
May 28, 2012
I have written a .Net 4.0 Winforms Numeric Editor control (which inherits from TextBox), and I have added a Value property that is a nullable decimal type, as follows:
Public Class NumericEditor
Inherits TextBox
Private _value As Decimal? = Nothing
[code]....
how to get around this exception, particularly when I'm databinding a number field to a number property, and there should be no string conversion happening. (To further complicate things, I'm using a similar technique for another control where I databind a DateTime field to a nullable DateTime property, and that control works just fine.)
View 1 Replies
Dec 20, 2011
I have a class that exposes an auto implemented property Enabled
[Code]...
But If I had not use an auto implemented property and declared my own backing-field as follows this is accessible from the subclass: Private _Enabled as Boolean ---- EDIT ----
The abve line is incorrect - this is not possible, it was in fact Protected in the original code which allowed access from the sub class See @JonSkeet answer ---- EDIT Of course I can just access Enabled from the sub class to work around this but can someone explain why this is the behaviour?
View 2 Replies
Feb 27, 2012
I have used ADOX for create some fields in my database in access but the required property of this appended fields (columns) are set in "yes" but I want to be them "No" who knows how can I solve this problem
View 3 Replies
Oct 19, 2009
I have a custom control with a bindable property:-
Private _Value As Object
<Bindable(True), ... > _
Public Property Value() As Object
Get
[code]....
Also, here, I'm adding a handler to the DataBindings.CollectionChanged event.This is the second place that I retrieve the type:-
Private Sub DataBindings_CollectionChanged(ByVal sender As Object, ByVal e As System.ComponentModel.CollectionChangeEventArgs)
If e.Action = CollectionChangeAction.Add Then
Dim b As Binding = DirectCast(e.Element, Binding)
[code]....
I need the first place, because the BindingContextChanged event is not fired until some time after InitializeComponent.The second place is needed if the binding field is programatically changed.Am I handling the correct events here, or is there a cleaner way to do it?
Note: My GetValueType method uses the CurrencyManager.GetItemProperties....etc, to retrieve the type.
View 1 Replies
Sep 28, 2009
I use VS 2005 and VB.NET. I have a class A. This class A is an empty class(no functions, no members). I wrote the following code: Dim _a as new A(); Dim code as String = _a.GetCode() In the same situation, the C# refactoring tool in VS 2005 IDE propose me to create a method in the A class internal string GetCode(){ }
The VB.NET compiles does not propose anything. There is a way to implement the functions when I need it in code, or I need to planify all my methods before using the class?
View 4 Replies
Jul 24, 2009
I recently started a project and needed to do some integration with LDAP via DirectoryServices. I've done this in other apps so I went into one of them to see how I did it -- why reinvent the wheel right? Well, while this wheel works, it was developed years ago and kinda smells (it's wooden, firmly attached to the previous vehicle, hard to repair and produces a potentially bumpy ride).So I thought to myself, this is the perfect time to refactor this puppy and make it more portable, reusable, reliable, easier to configure etc. Now that's fine and dandy, but then I started feeling a tad overwhelmed regarding to where to start. Should it be a separate library? How should it be configured? Should it use IoC? DI?
So my [admittedly subjective] question is this -- given a relatively small, but quite useful class like the one below, what is a good approach to refactoring it? What questions do you ask and how do you decide what to implement or not implement? Where do you draw the line regarding configuration flexibility? [Note: Please don't bash this code too much okay? It was written a long time ago and has functioned perfectly well baked into an in house application.]
Public Shared Function AuthenticateUser(ByVal id As String, ByVal password As String) As Boolean
Dim path As String = GetUserPath(id)
[code]......
View 5 Replies
Dec 20, 2010
I want to add DataMember attributes for the properties in a class Is there any way to automatically add the attribute maybe some refactoring tool
View 4 Replies
Feb 21, 2011
This is my scenario. I am writing an app which takes a person object and a features object , when the user selects a person object a features object is created. This works for any amount of features i care to display. So far so good, i am now refactoring to create 2 additional classes, a maths class and a ui class. my issue now is how do i get the maths functions to know the instance of the features object(s) or person object(s)?
Unfactored
Public Sub New(ByVal feature1 As New Feature)
...
[code].....
View 2 Replies
Oct 13, 2010
When I try to change the root namespace of my WPF VB.Net application, I get this error:
'The file "" does not support refactoring and will have to be manually changed. Object reference not set to an instance of an object'
[Code]...
View 5 Replies
Jul 7, 2010
I have a class that I wrote fairly early on in my vb.net programming experience which inherited from another class it really should have composed. The base class is a relatively generic nested dictionary-based collection; let's call the descendant class a "Car".Right now there's a lot of code that does things like 'MyCar!Color.st = "Red"' (I use the generic collection rather than real properties to facilitate data interchange with code written in VB6, and also to facilitate comparisons of cars; given three cars X, Y, Z, I can e.g. detect any changes between X and Y and apply those changes to Z).
Is there any nice way to refactor the code to use composition rather than inheritance?Which properties methods should the "Car" object wrap, and which ones should be accessed through a data-object property? Should a widening conversion be defined between a car and the collection object? Are there any gotchas when doing such refactoring?
View 1 Replies
Sep 15, 2009
These routines (vb.net) allow you to dump a gridview to CSV, even if there are templated controls in the cells. It works, but I'm not thrilled with it.
What improvements should I make and why?
Private Shared Function CsvFormatted(ByVal t As String) As String
If t.Contains(",") Then
t = """" + t + """"
[Code].....
View 1 Replies
May 21, 2010
Have we moved from "Being forced to go install a 3rd party add in to get what C# users have" to "Being forced to go buy a 3rd party add in to get what C# users have"?
Why did MS see fit to get DevExpress to create Refactor! for the previous versions of VS, but not for 2010? Or am I missing something?
View 3 Replies
Sep 10, 2010
I've been working to refactor my code and ended up with a quite clean main BLL class that has only a few manager classes that pass information between eachother. They handle separate tasks/areas like socket connection, data, etc. It's only one instance of each of these manager objects, so I believe maybe the base layout is a structural singleton (?) ..but not sure. This seems to give quite good oversight and a clean separation of PL/BLL as the main form only access the BLL through one instance of a single class. But now I'm trying to figure out how to lay out the presentation layer. So with this I would like to understand a few points: Do you have all controls as members of the form class, or can you make sub classes where some controls only exist on lower levels? Like for example if you have a tab where all controls only interact with each other, and not the rest of the form, would it then be possible to make this a separate class that holds both controls and additional logic ? The first problem I get when trying this is with the events, as if I simply move an event handler method to another class than the form class, I get the message: Handles clause requires a WithEvents variable defined in the containing type or one of its base types.What does this mean? and is there an easy way around this? I would like to understand how a slightly more complex PL is designed, so I know what direction to move in for studying/developing this.
View 3 Replies
Jun 4, 2012
I have a case statement which compares data by getting parameter such as "eq,ne,gt,..." and so on. Actually this method will filter data by getting filter parameter and filter value. How can I refactor below code?
[Code]...
View 1 Replies
Feb 11, 2010
All the refactoring tools for C# and VB.Net that I have seen only consider the source code in a single visual studio solution.For better or worse, our large (many related programs) system is spread over many solution files, however:All the code is below a single windows folder. Our nAnt based build system, builds all files in a windows folder to produce a single dll (bit more complex then this but not important for this question).Therefore ALL ".cs" and ".vb" files below the single root folder are part of the system.
So I am looking for refactoring and reverse engineering tools that take a single folder as input and act on all files below that folder.(The tools may need some help to decide what "public" and "internal" means, however most of the time "internal" means "in the same code tree" when a "code tree" is a folder that contains code and any child folders.)Now I am being greedy, I would like the tools to create a lot of all the refactorings that have been done and to be able to replay the refactorings. Then I could try out ideal and if they work, throw away my code, get the latest code, you do the refactorings and checkin the code before anyone else changes the files. (Likewise for when branches need merging)
View 1 Replies
Nov 17, 2010
I need to refactor the method GetVendorBalanceDue to call stored procedure spVendorBalance in my database. I have created the stored procedure and am not sure how to get the method to call the stored procedure. Here is my code:
Private Function GetVendorBalanceDue(ByVal vendorID As Integer) As Decimal Implements InvoiceService.GetVendorBalanceDue
Dim selectCommand As New SqlCommand
[Code].....
View 1 Replies
Feb 9, 2010
[code]......
View 9 Replies
Jun 16, 2009
Error in VB code "Name of field or property being initialized in an object initializer must start with '.'_"
View 3 Replies
Aug 27, 2009
I am using Oracle 11g client, with ODP.NET. I am trying to add conditional Transaction handling.
Dim ds As New DataSet()
Dim txn As OracleTransaction
Dim _beginTransaction as Bolean = true
Using conn As New OracleConnection(ConnString)
[Code]...
How do I fix txn being nothing / null? The error is: Variable 'txn' is used before it has been assigned a value. A null reference exception could result at runtime. Edit: to RichardOD for pointing out that you can not explicitly declare that a transaction cannot be opend up on stored procedures via ODP.NET. I have verified that this is an issue. BUT We still haven't figured out why the error is occuring. I understand that txn is initially given a value w/in an if statement, but being defined outside of the try/catch block should make that irrelevant.... right? Or is that bad coding?
View 3 Replies