Deconstruction is ambiguous Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Data science time! April 2019 and salary with experience The Ask Question Wizard is Live!Ambiguous call error with overloaded method that takes 2 delegates with different return typesC# overloading ambiguityExtensiong ambiguous errorError CS0121 with double and inthow to fix the error on the Round, what should i change the line to?How can i solve a Math error between decimal and double?Ambiguity with Task.RunMSBuild15 CS0121 ambiguous 'List<T>.List(params T[])' and 'List<T>.List(params List<T>[])'C# deconstruction and overloadsSystem.ObservableExtensions.Subscribe: ambiguous reference

How can I prevent/balance waiting and turtling as a response to cooldown mechanics

What would you call this weird metallic apparatus that allows you to lift people?

How were pictures turned from film to a big picture in a picture frame before digital scanning?

What's the point of the test set?

Project Euler #1 in C++

Intuitive explanation of the rank-nullity theorem

Why can't I install Tomboy in Ubuntu Mate 19.04?

Most bit efficient text communication method?

Draw 4 of the same figure in the same tikzpicture

The Nth Gryphon Number

Is there any word for a place full of confusion?

How often does castling occur in grandmaster games?

macOS: Name for app shortcut screen found by pinching with thumb and three fingers

What order were files/directories output in dir?

What does Turing mean by this statement?

How would a mousetrap for use in space work?

Sum letters are not two different

How to write capital alpha?

Did Mueller's report provide an evidentiary basis for the claim of Russian govt election interference via social media?

Significance of Cersei's obsession with elephants?

Strange behavior of Object.defineProperty() in JavaScript

How long can equipment go unused before powering up runs the risk of damage?

What does 丫 mean? 丫是什么意思?

Flash light on something



Deconstruction is ambiguous



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)
Data science time! April 2019 and salary with experience
The Ask Question Wizard is Live!Ambiguous call error with overloaded method that takes 2 delegates with different return typesC# overloading ambiguityExtensiong ambiguous errorError CS0121 with double and inthow to fix the error on the Round, what should i change the line to?How can i solve a Math error between decimal and double?Ambiguity with Task.RunMSBuild15 CS0121 ambiguous 'List<T>.List(params T[])' and 'List<T>.List(params List<T>[])'C# deconstruction and overloadsSystem.ObservableExtensions.Subscribe: ambiguous reference



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








7















I have a vector class with two deconstruction methods as follows:



public readonly struct Vector2

public readonly double X, Y;

...

public void Deconstruct( out double x, out double y )

x = this.X;
y = this.Y;


public void Deconstruct( out Vector2 unitVector, out double length )

length = this.Length;
unitVector = this / length;




Somewhere else I have:



Vector2 foo = ...
(Vector2 dir, double len) = foo;


This gives me:



CS0121: The call is ambiguous between the following methods or properties: 'Vector2.Deconstruct(out double, out double)' and 'Vector2.Deconstruct(out Vector2, out double)'


How is this ambiguous?



Edit: Calling Deconstruct manually works fine:



foo.Deconstruct( out Vector2 dir, out double len );









share|improve this question
























  • If your Vector class had implicit conversion to/from a double, say, then this would be ambiguous.

    – Ian Mercer
    6 hours ago

















7















I have a vector class with two deconstruction methods as follows:



public readonly struct Vector2

public readonly double X, Y;

...

public void Deconstruct( out double x, out double y )

x = this.X;
y = this.Y;


public void Deconstruct( out Vector2 unitVector, out double length )

length = this.Length;
unitVector = this / length;




Somewhere else I have:



Vector2 foo = ...
(Vector2 dir, double len) = foo;


This gives me:



CS0121: The call is ambiguous between the following methods or properties: 'Vector2.Deconstruct(out double, out double)' and 'Vector2.Deconstruct(out Vector2, out double)'


How is this ambiguous?



Edit: Calling Deconstruct manually works fine:



foo.Deconstruct( out Vector2 dir, out double len );









share|improve this question
























  • If your Vector class had implicit conversion to/from a double, say, then this would be ambiguous.

    – Ian Mercer
    6 hours ago













7












7








7


0






I have a vector class with two deconstruction methods as follows:



public readonly struct Vector2

public readonly double X, Y;

...

public void Deconstruct( out double x, out double y )

x = this.X;
y = this.Y;


public void Deconstruct( out Vector2 unitVector, out double length )

length = this.Length;
unitVector = this / length;




Somewhere else I have:



Vector2 foo = ...
(Vector2 dir, double len) = foo;


This gives me:



CS0121: The call is ambiguous between the following methods or properties: 'Vector2.Deconstruct(out double, out double)' and 'Vector2.Deconstruct(out Vector2, out double)'


How is this ambiguous?



Edit: Calling Deconstruct manually works fine:



foo.Deconstruct( out Vector2 dir, out double len );









share|improve this question
















I have a vector class with two deconstruction methods as follows:



public readonly struct Vector2

public readonly double X, Y;

...

public void Deconstruct( out double x, out double y )

x = this.X;
y = this.Y;


public void Deconstruct( out Vector2 unitVector, out double length )

length = this.Length;
unitVector = this / length;




Somewhere else I have:



Vector2 foo = ...
(Vector2 dir, double len) = foo;


This gives me:



CS0121: The call is ambiguous between the following methods or properties: 'Vector2.Deconstruct(out double, out double)' and 'Vector2.Deconstruct(out Vector2, out double)'


How is this ambiguous?



Edit: Calling Deconstruct manually works fine:



foo.Deconstruct( out Vector2 dir, out double len );






c# c#-7.3






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 6 hours ago







Chris

















asked 6 hours ago









ChrisChris

4,7431025




4,7431025












  • If your Vector class had implicit conversion to/from a double, say, then this would be ambiguous.

    – Ian Mercer
    6 hours ago

















  • If your Vector class had implicit conversion to/from a double, say, then this would be ambiguous.

    – Ian Mercer
    6 hours ago
















If your Vector class had implicit conversion to/from a double, say, then this would be ambiguous.

– Ian Mercer
6 hours ago





If your Vector class had implicit conversion to/from a double, say, then this would be ambiguous.

– Ian Mercer
6 hours ago












1 Answer
1






active

oldest

votes


















8














This is by design in C#. Overloads of Deconstruct must have different arity (number of parameters), otherwise they are ambiguous.




Pattern-matching does not have a left-hand-side. More elaborate
pattern-matching scheme is to have a parenthesized list of patterns to
match, and we use the number of patterns to decide which Deconstruct
to use
.
- Neal Gafter https://github.com/dotnet/csharplang/issues/1998#issuecomment-438472660







share|improve this answer




















  • 2





    That is thoroughly disappointing!

    – Chris
    6 hours ago











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55767219%2fdeconstruction-is-ambiguous%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









8














This is by design in C#. Overloads of Deconstruct must have different arity (number of parameters), otherwise they are ambiguous.




Pattern-matching does not have a left-hand-side. More elaborate
pattern-matching scheme is to have a parenthesized list of patterns to
match, and we use the number of patterns to decide which Deconstruct
to use
.
- Neal Gafter https://github.com/dotnet/csharplang/issues/1998#issuecomment-438472660







share|improve this answer




















  • 2





    That is thoroughly disappointing!

    – Chris
    6 hours ago















8














This is by design in C#. Overloads of Deconstruct must have different arity (number of parameters), otherwise they are ambiguous.




Pattern-matching does not have a left-hand-side. More elaborate
pattern-matching scheme is to have a parenthesized list of patterns to
match, and we use the number of patterns to decide which Deconstruct
to use
.
- Neal Gafter https://github.com/dotnet/csharplang/issues/1998#issuecomment-438472660







share|improve this answer




















  • 2





    That is thoroughly disappointing!

    – Chris
    6 hours ago













8












8








8







This is by design in C#. Overloads of Deconstruct must have different arity (number of parameters), otherwise they are ambiguous.




Pattern-matching does not have a left-hand-side. More elaborate
pattern-matching scheme is to have a parenthesized list of patterns to
match, and we use the number of patterns to decide which Deconstruct
to use
.
- Neal Gafter https://github.com/dotnet/csharplang/issues/1998#issuecomment-438472660







share|improve this answer















This is by design in C#. Overloads of Deconstruct must have different arity (number of parameters), otherwise they are ambiguous.




Pattern-matching does not have a left-hand-side. More elaborate
pattern-matching scheme is to have a parenthesized list of patterns to
match, and we use the number of patterns to decide which Deconstruct
to use
.
- Neal Gafter https://github.com/dotnet/csharplang/issues/1998#issuecomment-438472660








share|improve this answer














share|improve this answer



share|improve this answer








edited 6 hours ago

























answered 6 hours ago









AsikAsik

14.4k349105




14.4k349105







  • 2





    That is thoroughly disappointing!

    – Chris
    6 hours ago












  • 2





    That is thoroughly disappointing!

    – Chris
    6 hours ago







2




2





That is thoroughly disappointing!

– Chris
6 hours ago





That is thoroughly disappointing!

– Chris
6 hours ago



















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55767219%2fdeconstruction-is-ambiguous%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

How to create a command for the “strange m” symbol in latex? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)How do you make your own symbol when Detexify fails?Writing bold small caps with mathpazo packageplus-minus symbol with parenthesis around the minus signGreek character in Beamer document titleHow to create dashed right arrow over symbol?Currency symbol: Turkish LiraDouble prec as a single symbol?Plus Sign Too Big; How to Call adfbullet?Is there a TeX macro for three-legged pi?How do I get my integral-like symbol to align like the integral?How to selectively substitute a letter with another symbol representing the same letterHow do I generate a less than symbol and vertical bar that are the same height?

Българска екзархия Съдържание История | Български екзарси | Вижте също | Външни препратки | Литература | Бележки | НавигацияУстав за управлението на българската екзархия. Цариград, 1870Слово на Ловешкия митрополит Иларион при откриването на Българския народен събор в Цариград на 23. II. 1870 г.Българската правда и гръцката кривда. От С. М. (= Софийски Мелетий). Цариград, 1872Предстоятели на Българската екзархияПодмененият ВеликденИнформационна агенция „Фокус“Димитър Ризов. Българите в техните исторически, етнографически и политически граници (Атлас съдържащ 40 карти). Berlin, Königliche Hoflithographie, Hof-Buch- und -Steindruckerei Wilhelm Greve, 1917Report of the International Commission to Inquire into the Causes and Conduct of the Balkan Wars

Чепеларе Съдържание География | История | Население | Спортни и природни забележителности | Културни и исторически обекти | Религии | Обществени институции | Известни личности | Редовни събития | Галерия | Източници | Литература | Външни препратки | Навигация41°43′23.99″ с. ш. 24°41′09.99″ и. д. / 41.723333° с. ш. 24.686111° и. д.*ЧепелареЧепеларски Linux fest 2002Начало на Зимен сезон 2005/06Национални хайдушки празници „Капитан Петко Войвода“Град ЧепелареЧепеларе – народният ски курортbgrod.orgwww.terranatura.hit.bgСправка за населението на гр. Исперих, общ. Исперих, обл. РазградМузей на родопския карстМузей на спорта и скитеЧепеларебългарскибългарскианглийскитукИстория на градаСки писти в ЧепелареВремето в ЧепелареРадио и телевизия в ЧепелареЧепеларе мами с родопски чар и добри пистиЕвтин туризъм и снежни атракции в ЧепелареМестоположениеИнформация и снимки от музея на родопския карст3D панорами от ЧепелареЧепелареррр