On 12/04/2008, Sébastien Lorion <[EMAIL PROTECTED]> wrote: > Well, in my code I have another method similar to: > > void DoStuff(Type type, string input) > { > object value; > if (TryParse(input, out value)) > { > // ... > } > } > > I made a mistake and forgot to pass "type" to TryParse. I discovered > the bug only at runtime when testing my code. I can understand the > compiler behavior, but it is not what I expect since I think in most > case, the programmer did not intend to do that. A warning would be > nice here IMO. > > Sébastien
I assume the warning you're looking for is something like "Generic type inferred as Object", which would be the deliberate case for too many situations to be a warning. (Remember that in most cases warnings are seen as "show stoppers" -- the only valid final build is one without any warnings.) However, if you want it to be a warning or invalid for your code, add an overload: [Obsolete("Is this what you really meant?", false)] bool TryParse(string Input, out object Value) And when the overload resolution matches that signature, you'll get the Obsolete warning (or error if you pass True in the ObsoleteAttribute reference). Regards, Mark Hurd, B.Sc.(Ma.)(Hons.) P.S. I've hand crafted the C# code above from this hand crafted VB.NET: <Obsolete("Is this what you really meant?", False)> _ Function TryParse(ByVal Input As String, <Out()> ByRef Value As Object> As Boolean =================================== This list is hosted by DevelopMentor® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com