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

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...

Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Ryan ChongSoftware Team LeadCommented:
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.
p-platerAuthor Commented:
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.
David Johnson, CDRetiredCommented:
CompTIA Network+

Prepare for the CompTIA Network+ exam by learning how to troubleshoot, configure, and manage both wired and wireless networks.

p-platerAuthor Commented:
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..
Ryan ChongSoftware Team LeadCommented:
TryCast ensures that your program will not getting an error if you passing the wrong parameter into the function ConvertFromString.

TryCast Operator (Visual Basic)

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.
Hamed NasrRetired IT ProfessionalCommented:
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.
p-platerAuthor Commented:
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)

"TryCast Operand must be a Reference type - Color is a Value Type"
Ryan ChongSoftware Team LeadCommented:
you may try:
TryCast(new BrushConverter().ConvertFromString(drd.GetString(10)), SolidBrush)

Open in new window

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

Open in new window

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

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
The question wasn't about converting but checking if the conversion is possible.
The destination type wasn't a Brush but a Color.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic.NET

From novice to tech pro — start learning today.