Solved

Test if a String can Convert to a system.media.color

Posted on 2016-07-31
10
45 Views
Last Modified: 2016-08-22
Is there a way to check if a String will Convert to a system.media.color type without a Try...Catch Block and throwing an Exception?
There must be but I just can't find it...

Thanks
0
Comment
Question by:p-plater
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
  • 2
  • +2
10 Comments
 
LVL 52

Expert Comment

by:Ryan Chong
ID: 41736899
what kind of string do you have here?

you probably can't transfer a String to system.media.color object directly unless there is a built-in function there, and it wil throw an exception if invalid string input parameter was found. hence a try catch would probably tell you whether your string input parameter is valid.
0
 

Author Comment

by:p-plater
ID: 41736933
I am using the Following to Convert the String.
supplierToPurchase.CustomerRatingBrush = TryCast(New BrushConverter().ConvertFromString(drd.GetString(10)), SolidColorBrush)

Open in new window


I am using a Try Catch but I'm after a Check if the sting will convert WITHOUT using Try Catch.
0
 
LVL 81

Expert Comment

by:David Johnson, CD, MVP
ID: 41736946
0
PeopleSoft Has Never Been Easier

PeopleSoft Adoption Made Smooth & Simple!

On-The-Job Training Is made Intuitive & Easy With WalkMe's On-Screen Guidance Tool.  Claim Your Free WalkMe Account Now

 

Author Comment

by:p-plater
ID: 41736960
The string is like #256142.
I am Not after system colors..

I am after a way to TEST if a String will convert to a Color WITHOUT using Try...Catch..
0
 
LVL 52

Expert Comment

by:Ryan Chong
ID: 41736991
TryCast ensures that your program will not getting an error if you passing the wrong parameter into the function ConvertFromString.

TryCast Operator (Visual Basic)
https://msdn.microsoft.com/en-us/library/zyy863x8(v=vs.100).aspx

If an attempted conversion fails, CType and DirectCast both throw an InvalidCastException error. This can adversely affect the performance of your application. TryCast returns Nothing (Visual Basic), so that instead of having to handle a possible exception, you need only test the returned result against Nothing.

you need to handle that as part of a good practice in programming. you can always do that without the TryCast, but your program could be at risk of crashing due to program error exception.
0
 
LVL 30

Expert Comment

by:hnasr
ID: 41736995
Quick reply, not checked.
WITHOUT using Try...Catch
Start by creating a temporary table containing all available color codes, or just the ones of interest.

Test the required value if exists in the table.
0
 

Author Comment

by:p-plater
ID: 41737022
I tried to use TryCast but it doesn't allow itself to be used with type "Color"

TryCast(New ColorConverter().ConvertFromString(drd.GetString(10)), Color)

Error
"TryCast Operand must be a Reference type - Color is a Value Type"
0
 
LVL 52

Expert Comment

by:Ryan Chong
ID: 41737025
you may try:
TryCast(new BrushConverter().ConvertFromString(drd.GetString(10)), SolidBrush)

Open in new window

or
TryCast(new BrushConverter().ConvertFromString(drd.GetString(10)), SolidColorBrush)

Open in new window

0
 
LVL 11

Accepted Solution

by:
louisfr earned 500 total points (awarded by participants)
ID: 41737050
BrushConverter is to get a Brush, not a Color.
Did you try ColorConverter instead?

ColorConverter.ConvertFromString will always return a Color if the string starts with # followed by 3, 4, 6 or 8 hexadecimal digits. You can use a regex or a loop to check that.

Here is the regex:
bool isOk = Regex.IsMatch(valueToParse, "^#([0-9a-fA-F]{3,4}|([0-9a-fA-F]{2}){3,4})$");

Open in new window

0
 
LVL 11

Expert Comment

by:louisfr
ID: 41763499
The question wasn't about converting but checking if the conversion is possible.
The destination type wasn't a Brush but a Color.
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

More often than not, we developers are confronted with a need: a need to make some kind of magic happen via code. Whether it is for a client, for the boss, or for our own personal projects, the need must be satisfied. Most of the time, the Framework…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
In this video, viewers will be given step by step instructions on adjusting mouse, pointer and cursor visibility in Microsoft Windows 10. The video seeks to educate those who are struggling with the new Windows 10 Graphical User Interface. Change Cu…
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this v…

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question