In .NET, if there is a class with a method Foo<T>(T t) (no constraints) and a method Foo(string s), calling Foo("test") calls the Foo that accepts a string. This is all good and well, unless the string overload is an extension method, in which case the generic version is always called. Is there some workaround for this problem, or am I out of luck?
Is there any way I can make an extension method take priority over a generic method?
358 Views Asked by AlphaModder At
1
There are 1 best solutions below
Related Questions in C#
- Passing arguments to main in C using Eclipse
- kernel module does not print packet info
- error C2016 (C requires that a struct or union has at least one member) and structs typedefs
- Drawing with ncurses, sockets and fork
- How to catch delay-import dll errors (missing dll or symbol) in MinGW(-w64)?
- Configured TTL for A record(s) backing CNAME records
- Allocating memory for pointers inside structures in functions
- Finding articulation point of undirected graph by DFS
- C first fgets() is being skipped while the second runs
- C std library don't appear to be linked in object file
- gcc static library compilation
- How to do a case-insensitive string comparison?
- C programming: Create and write 2D array of files as function
- How to read a file then store to array and then print?
- Function timeouts in C and thread
Related Questions in GENERICS
- Implementing Iterator for abstractCollection
- C# check if there is an overload method with the specific type
- instantiating a generic class data type known at runtime
- How to tell Java that two wildcard types are the same?
- C++ Templates with multiple constraints
- How are the generic functions and types stored in an rlib?
- Java Generics missunderstanding
- Generic webAPI method based on parameter types of arrays
- C# pass generic type as a generic type parameter?
- Return int in method supposed to return generic class
- StarUML Class Diagram : How to manually add Generics (Template Type T) for a class
- Modeling an XML hierarchy for traversal with MVVM
- How to get the values of generic array in Java?
- Swift: converting between Arrays of 'Protocol' and Arrays of implementing Class
- instantiating a generic referance class with data types known at runtime
Related Questions in OVERLOAD-RESOLUTION
- C++ template functions priority
- Overload resolution and partial template ordering
- Is there any way I can make an extension method take priority over a generic method?
- Why is Linq.Sum() with decimals ambiguous between int and int?
- Why does the number of elements in a initializer list cause an ambiguous call error?
- Why does F# require type placeholders for ToDictionary?
- Dependent qualified name lookup in C++14
- Second standard conversion sequence of user-defined conversion
- Use inherited member operator instead of free one
- Why can't the compiler tell the better conversion target in this overload resolution case? (covariance)
- Cannot call overloaded methods of .NET API in PowerShell
- Method overload resolution with regards to generics and IEnumerable
- How does the method overload resolution system decide which method to call when a null value is passed?
- Overload resolution of operator new regarding nested classes
- Variadic templates: choose the tuple element type that has a proper method
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Short answer: no
In page 163 of the C# 5.0 Language Specification, we can see that after all overload resolution was attempted on a
Method Group(a set of overloaded methods), and no suitable candidates are found, the compiler will try to search for applicable extension methods. This means that all the funky stuff such as generic type inference will take precedence over extension methods. To quote: