Originally posted by thunderlizard
View Post
- Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
- Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!
Reply to: Boolean Algebra
Collapse
You are not logged in or you do not have permission to access this page. This could be due to one of several reasons:
- You are not logged in. If you are already registered, fill in the form below to log in, or follow the "Sign Up" link to register a new account.
- You may not have sufficient privileges to access this page. Are you trying to edit someone else's post, access administrative features or some other privileged system?
- If you are trying to post, the administrator may have disabled your account, or it may be awaiting activation.
Logging in...
Previously on "Boolean Algebra"
Collapse
-
-
Originally posted by ASB View PostI did once see something very like:-
Select Case True
Case SomeObject isnot nothing
if Someopbject.Property = "xyz"
do something
end if
end select
Code:For i = 1 To 2 If i = 1 Then DoA() End If If i = 2 Then DoB() End If Next i
Leave a comment:
-
Originally posted by NickFitz View PostIn many cases the Null Object pattern is appropriate. (Here's a GoF-style description.)
Leave a comment:
-
Originally posted by doodab View Post...300 classes all of which should probably be named NullPointerExceptionFactory
Originally posted by doodab View PostOf course, in an ideal world I would tell the numpty to wrap whatever API is returning null objects in a factory class that throws an exception, as personally I think that functions that require checking their return values for null have no place in a modern OO language.
Leave a comment:
-
Originally posted by meOf course, in it's entirety it's more than just a language, but then so is Java.Originally posted by Spacecadet View Post.NET is a framework
VB.NET and C# are languages
Originally posted by meThe high level languages aren't strictly part of .Net, as you so rightly pointed out, but many people treat the term as a synonym for either C# or VB (but rarely both).Originally posted by meThe CIL (common intermediate language for the google-challenged), which is both a language and part of .Net, is what I would call a modern OO langauge, i.e. it's object oriented, supports exceptions and doesn't require the developer to be responsible for memory management.
The point I was making is that API functions that return null to indicate an exceptional condition are a carry over from days of yore and have no place in a modern object oriented whateverthe****youwantocallit that supports exceptions and takes care of memory management automagically.Last edited by doodab; 9 June 2010, 11:34.
Leave a comment:
-
Originally posted by Jaws View PostIn C# boolean expression evaluation is short circuited.
if (object != null && object.test == "Item") // would work
Originally posted by Jaws View PostIf there are 5-6 levels of nesting in a method due to things like this, any gains from making things obvious are lost as far as I'm concerned.
I did once see something very like:-
Select Case True
Case SomeObject isnot nothing
if Someopbject.Property = "xyz"
do something
end if
end select
A novel approach if nothing else.
Leave a comment:
-
Originally posted by ASB View PostBut how else would you write it? It depends on the language constructs available and whether the language short circuits.
In Cobol for example:-
if object not null and object.item = "Test" will be fine.
In C# it'll throw an exception in the case where the object is null because it doesn't short circuit. Same is true in VB. Of course in VB.NET you could:-
if object isnot nothing andalso object.item = "Test"I imagine there is a similar construct in C#
The construct you described is not necessarily laziness, it may be the only option that was available. It may be that the implementer felt it made it blindingly obvious.
if (object != null && object.test == "Item") // would work
If there are 5-6 levels of nesting in a method due to things like this, any gains from making things obvious are lost as far as I'm concerned.
I'm very forgiving with legacy code and last minute bug fixes, it's just when newly written code comes to me in that format that it bothers me.
Leave a comment:
-
Originally posted by doodab View PostOf course, in it's entirety it's more than just a language, but then so is Java.
VB.NET and C# are languages
Leave a comment:
-
Originally posted by Jaws View PostClearly that's a mistake but it should be pretty obvious when (if) they come to test it.
What I can't stand seeing is lots of nested if statements when a single one could be used (eg if(object != null) { if (object.Item == "Test"); }). I've seen that kind of thing so many times from supposedly degree educated developers, pure lazyness.
In Cobol for example:-
if object not null and object.item = "Test" will be fine.
In C# it'll throw an exception in the case where the object is null because it doesn't short circuit. Same is true in VB. Of course in VB.NET you could:-
if object isnot nothing andalso object.item = "Test"I imagine there is a similar construct in C#
The construct you described is not necessarily laziness, it may be the only option that was available. It may be that the implementer felt it made it blindingly obvious.
Leave a comment:
-
Originally posted by Spacecadet View Post
Leave a comment:
-
Originally posted by Churchill View Post.Net is NOT A PROGRAMMING LANGUAGE
Hth.
I think most people would, in this context, take Java to mean the Java language and .Net to mean the CIL and the higher level languages that target the framework. The high level languages aren't strictly part of .Net, as you so rightly pointed out, but many people treat .the term as a synonym for either C# or VB (but rarely both).
The CIL, which is both a language and part of .Net, is what I would call a modern OO langauge, i.e. it's object oriented, supports exceptions and doesn't require the developer to be responsible for memory management.Last edited by doodab; 9 June 2010, 09:29.
Leave a comment:
-
Originally posted by doodab View PostThe nested if statements of the form you describe are usually bug fixes.
It starts with an incompetent permie writing
Code:if (object.property == "xyz") {...
Code:if (object != null) {...
Of course, in an ideal world I would tell the numpty to wrap whatever API is returning null objects in a factory class that throws an exception, as personally I think that functions that require checking their return values for null have no place in a modern OO language such as Java or .Net.
Hth.
Leave a comment:
-
The nested if statements of the form you describe are usually bug fixes.
It starts with an incompetent permie writing
Code:if (object.property == "xyz") {...
Code:if (object != null) {...
Of course, in an ideal world I would tell the numpty to wrap whatever API is returning null objects in a factory class that throws an exception, as personally I think that functions that require checking their return values for null have no place in a modern OO language.Last edited by doodab; 9 June 2010, 11:04.
Leave a comment:
-
Originally posted by Jaws View PostClearly that's a mistake but it should be pretty obvious when (if) they come to test it.
What I can't stand seeing is lots of nested if statements when a single one could be used (eg if(object != null) { if (object.Item == "Test"); }). I've seen that kind of thing so many times from supposedly degree educated developers, pure lazyness.
Occasionally, I've found bits of case statements which would never be used, they just sit there untouched by logic like some sort of useless appendix.
and then the surplus brackets in SQL
and ((sales.customer_id) = (customers.customer_id))
You start to question if they're writing the stuff themselves or getting access to do it for them, lazy idiots
Leave a comment:
- Home
- News & Features
- First Timers
- IR35 / S660 / BN66
- Employee Benefit Trusts
- Agency Workers Regulations
- MSC Legislation
- Limited Companies
- Dividends
- Umbrella Company
- VAT / Flat Rate VAT
- Job News & Guides
- Money News & Guides
- Guide to Contracts
- Successful Contracting
- Contracting Overseas
- Contractor Calculators
- MVL
- Contractor Expenses
Advertisers
Contractor Services
CUK News
- Streamline Your Retirement with iSIPP: A Solution for Contractor Pensions Sep 1 09:13
- Making the most of pension lump sums: overview for contractors Sep 1 08:36
- Umbrella company tribunal cases are opening up; are your wages subject to unlawful deductions, too? Aug 31 08:38
- Contractors, relabelling 'labour' as 'services' to appear 'fully contracted out' won't dupe IR35 inspectors Aug 31 08:30
- How often does HMRC check tax returns? Aug 30 08:27
- Work-life balance as an IT contractor: 5 top tips from a tech recruiter Aug 30 08:20
- Autumn Statement 2023 tipped to prioritise mental health, in a boost for UK workplaces Aug 29 08:33
- Final reminder for contractors to respond to the umbrella consultation (closing today) Aug 29 08:09
- Top 5 most in demand cyber security contract roles Aug 25 08:38
- Changes to the right to request flexible working are incoming, but how will contractors be affected? Aug 24 08:25
Leave a comment: