{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/303","labels_url":"https://api.github.com/repos/dotnet/roslyn/issues/303/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/roslyn/issues/303/comments","events_url":"https://api.github.com/repos/dotnet/roslyn/issues/303/events","html_url":"https://github.com/dotnet/roslyn/issues/303","id":56933253,"number":303,"title":"Declaration of ref/out parameters in lambdas without typename","user":{"login":"ViIvanov","id":795200,"avatar_url":"https://avatars.githubusercontent.com/u/795200?v=3","gravatar_id":"","url":"https://api.github.com/users/ViIvanov","html_url":"https://github.com/ViIvanov","followers_url":"https://api.github.com/users/ViIvanov/followers","following_url":"https://api.github.com/users/ViIvanov/following{/other_user}","gists_url":"https://api.github.com/users/ViIvanov/gists{/gist_id}","starred_url":"https://api.github.com/users/ViIvanov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ViIvanov/subscriptions","organizations_url":"https://api.github.com/users/ViIvanov/orgs","repos_url":"https://api.github.com/users/ViIvanov/repos","events_url":"https://api.github.com/users/ViIvanov/events{/privacy}","received_events_url":"https://api.github.com/users/ViIvanov/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dotnet/roslyn/labels/Area-Language%20Design","name":"Area-Language Design","color":"5319e7"},{"url":"https://api.github.com/repos/dotnet/roslyn/labels/Enhancement","name":"Enhancement","color":"fc2929"},{"url":"https://api.github.com/repos/dotnet/roslyn/labels/Language-C%23","name":"Language-C#","color":"207de5"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/dotnet/roslyn/milestones/8","labels_url":"https://api.github.com/repos/dotnet/roslyn/milestones/8/labels","id":962632,"number":8,"title":"C# 7 and VB 15","description":"","creator":{"login":"gafter","id":3804346,"avatar_url":"https://avatars.githubusercontent.com/u/3804346?v=3","gravatar_id":"","url":"https://api.github.com/users/gafter","html_url":"https://github.com/gafter","followers_url":"https://api.github.com/users/gafter/followers","following_url":"https://api.github.com/users/gafter/following{/other_user}","gists_url":"https://api.github.com/users/gafter/gists{/gist_id}","starred_url":"https://api.github.com/users/gafter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gafter/subscriptions","organizations_url":"https://api.github.com/users/gafter/orgs","repos_url":"https://api.github.com/users/gafter/repos","events_url":"https://api.github.com/users/gafter/events{/privacy}","received_events_url":"https://api.github.com/users/gafter/received_events","type":"User","site_admin":false},"open_issues":9,"closed_issues":0,"state":"open","created_at":"2015-02-02T23:41:34Z","updated_at":"2015-02-08T02:30:34Z","due_on":null,"closed_at":null},"comments":7,"created_at":"2015-02-08T00:57:04Z","updated_at":"2015-02-09T15:12:57Z","closed_at":null,"body":"Hello! \r\n\r\nI have a little suggestion for C# language. \r\nLet us have delegate like this:\r\n```cs\r\ndelegate T Parse<T>(string text);\r\n```\r\nand we want to create an instance:\r\n```cs\r\nParse<int> parse = text => Int32.Parse(text);\r\n```\r\nAll is OK. What about ref/out parameters in a delegate?\r\n```cs\r\ndelegate bool TryParse<T>(string text, out T result);\r\n```\r\nwhen we want to create an instance…\r\n```cs\r\nTryParse<int> parse1 = (string text, out int result) => Int32.TryParse(text, out result);\r\n```\r\n…we shoud to specify types on parameters.\r\n\r\nWhy is this required? What about a syntax below:\r\n```cs\r\nTryParse<int> parse2 = (text, out result) => Int32.TryParse(text, out result);\r\n```\r\n?"},"comment":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/comments/73524521","html_url":"https://github.com/dotnet/roslyn/issues/303#issuecomment-73524521","issue_url":"https://api.github.com/repos/dotnet/roslyn/issues/303","id":73524521,"user":{"login":"ViIvanov","id":795200,"avatar_url":"https://avatars.githubusercontent.com/u/795200?v=3","gravatar_id":"","url":"https://api.github.com/users/ViIvanov","html_url":"https://github.com/ViIvanov","followers_url":"https://api.github.com/users/ViIvanov/followers","following_url":"https://api.github.com/users/ViIvanov/following{/other_user}","gists_url":"https://api.github.com/users/ViIvanov/gists{/gist_id}","starred_url":"https://api.github.com/users/ViIvanov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ViIvanov/subscriptions","organizations_url":"https://api.github.com/users/ViIvanov/orgs","repos_url":"https://api.github.com/users/ViIvanov/repos","events_url":"https://api.github.com/users/ViIvanov/events{/privacy}","received_events_url":"https://api.github.com/users/ViIvanov/received_events","type":"User","site_admin":false},"created_at":"2015-02-09T15:12:57Z","updated_at":"2015-02-09T15:12:57Z","body":"@paulomorgado Excuse me, can you explain what do you mean? Why in you point of view\r\n```cs\r\nTryParse<int> tryParseHex1 = (string text, out int result) => Int32.TryParse(text, NumberStyles.HexNumber, null, out result);\r\n```\r\nis correct (it is valid C# code) and\r\n```cs\r\nTryParse<int> tryParseHex2 = (text, out result) => Int32.TryParse(text, NumberStyles.HexNumber, null, out result);\r\n```\r\nis not? In a both examples, types of arguments exactly the same. But, in the second line, it calculated by the compiler, not specified by user explicitly."}}