Visual Studio IDE

Announcement: This forum has been migrated to provide our customers one convenient and responsive system for all feedback. You can now suggest new ideas, browse and vote on existing ideas in the Visual Studio Developer Community. To learn more about the migration to Visual Studio Developer Community please check out the release blog post.

We’d like your suggestions and ideas to help us continuously improve future releases of Visual Studio, so we’ve partnered with UserVoice, a third-party service, to collect your feedback. Please do not send any novel or patentable ideas, copyrighted materials, samples or demos for which you do not want to grant a license to Microsoft.

This site is for feature suggestions; if you need to file a bug, you can visit our Developer Community website to get started.

Note: your use of the portal and your submission is subject to the UserVoice Terms of Service & Privacy Policy and license terms.

We look forward to hearing from you!
- The Visual Studio Team

I suggest you ...

You've used all your votes and won't be able to post a new idea, but you can still search and comment on existing ideas.

There are two ways to get more votes:

  • When an admin closes an idea you've voted on, you'll get your votes back from that idea.
  • You can remove your votes from an open idea you support.
  • To see ideas you have already voted on, select the "My feedback" filter and select "My open ideas".
(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. Allow trailing commas in method calls, same as in initializers

    For instance, I can say

    var foo = new Foo { Prop1="hello", Prop2="world, }

    but I can't say

    foo.DoStuff(arg1: "hello", arg2: "world",);

    I'd like to be able to do that since it makes it easier to maintain the code when I'm adding and removing arguments.

    1 vote
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  2. Ternary for a method call and not only for a return value

    I would like to see this idea imlplemented if possilbe, as I actually typed it in twice so far thinking it would work but I found that it is wrong.

    Currently, ternary returns a value that should be captured by a variable.

    var x = y? z1 : z2;

    What I would like to do is

    y? Z1() : Z2();

    instead of

    if (y)
    {
    Z1();
    }
    else
    {
    Z2();
    }

    Or maybe even

    y? return z1 : return z2;

    6 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  3. Implement community language ideas more quickly - or open-source C#

    You cannot seriously ignore top ideas for a decade - but that is what is happening.

    Is it any wonder C# is beginning to slip down the rankings of top languages?

    It's a wonderful language, but it's being suffocated with bureaucratic controls. Other languages are marching ahead.

    Set it free, or lose it.

    1 vote
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  4. Remove unnecessary references

    it would be interesting to remove unnecessary references automatically

    1 vote
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  5. Make it possible to return a class and not only instances

    [This might be a Dotnet issue and not a C# one.]

    A property or method can only return instances.
    If it could return a Class we would be able to mock static stuff.

    Below I am using System.Class, a class most famous for System.Class.WriteLine.

    If we could declare

    private Func<System.Class> C => System.Class;

    we would be able to

    C.WriteLine("Hello world!");

    We cold then inject a new value for `C` and not be hindered by static in automatic tests.

    3 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  6. C# Interactive Debug Support

    Hope to get debugging support in C# Interactive. One of the PMs mentioned it was on the map a few releases back, but have not seen any updates lately.

    6 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  7. C# Interactive NuGet Support

    Would be nice to get the NuGet package support added in C# Interactive. Heard there was work going on for F#.

    3 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  8. Add option to disable highlighting of syntax errors

    In C# in VS 2015, there is no option to completely turn off highlighting of syntax errors. I suggest adding one.
    (Having syntax highlighting becomes particularly annoying when writing a section of code that is heavily concerned with program logic; having the red sqiggles yelling at you is very annoying when you're trying to think carefully about how something has to be done.)

    3 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  9. Update C# language with an 'IN' function similar to SQL

    We have many situations where a variable needs to be checked against multiple possibilities but where a switch statement is inappropriate. Example:
    if( (x == 0 || x == 5) && ( y == 0 || y == 1 || y == 2) )
    {
    }
    If would be awesome to be able to say:
    if(x IN (0,5) && y IN (0,1,2) )
    {
    }
    especially useful if we need to come back and add more possibilities later on and still have readable code.

    1 vote
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  10. In a textbox ability to move cursor to first line visible in a scrolled multi line textbox

    When reloading data to the text box that has been search and replaced, I want the new data to be presented back in the textbox at the same position. textBox1.GetFirstCharIndexOfCurrentLine(); only gets the current line where the caret is active and then I can only scroll the text to make this at the top and so the position of the text has changed

    1 vote
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  11. Allow abstract interfaces

    Be able to force an interface to be inherited by sub-interfaces. The base or parent interface cannot directly be implemented by a class; only a sub-interface can be implented.

    e.g.
    public abstract interface IBaseInterface { ... } // cannot be implemented
    public interface ISubInterfaceA { ... } // can be implemented
    public interface ISubInterfaceB { ... } // can be implemented

    And therefore
    public abstract class BaseClass { ... } // base class
    public class SubClassA : BaseClass, IBaseInterface { ... } // PREVENT THIS FROM COMPILING - mixes concrete class with abstract interface
    public class SubClassA : BaseClass, ISubInterfaceA…

    3 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  12. C#别名问题

    vs2017
    直接贴出代码附件

    看两个附件可以很清楚地看出问题
    我之所以用using设置别名,就是为了在代码提示时,看到的是userid,roomid
    但是这边代码提示时就出错了。

    1 vote
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  13. please makeing C

    i want to learn a C
    please

    3 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  14. Allow Identifiers In Enums

    I have an enum for length measurement units. Naturally, one of them is "in". But the compiler sees this as a reserved word and forces me to use "@in". This is relatively unnatural and I don't see why there would be a conflict. It's my impression that an enum element is always preceded by a '.' and that should be sufficient to differentiate it from the actual keyword.

    0 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  15. Enhanced generic constraints: Interfaces, Enums, numerics

    This rolls up various requests and adds some more.

    Quite simply, generic constraints are beautiful - but incomplete.

    Please fill in the gaps and let a class be declared with constraints as follows:

    public class Subclass<TInterface, TEnum, TNumeric>
    where TInterface : interface
    where TEnum : enum
    where TNumeric : double, float, int, long // or some metaword for these
    { ... }

    9 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  16. Allow an interface to declare that certain classes conform to it (provided they have the appropriate methods)

    For example, I might want to declare an interface ILength, which is implemented by string, Array, and BitArray. It might look something like this:

    public interface ILength @ String, Array, BitArray {
    int Length {get;}
    }

    3 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  17. C# falls to #8 most popular language in 2018 Stack Overflow survey

    This suggestion is migrated to Developer Community. Please use below link to view the current status.
    https://developercommunity.visualstudio.com/content/idea/351630/c-falls-to-8-most-popular-language-in-2018-stack-o.html
    C# has fallen from #4 in the 2017 survey to #8 in the 2018 Stack Overflow survey

    118 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    14 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  18. Automate Web Service Publishing

    There should be a Visual Studio feature to publish a C# Web Service from the command line, which would allow developers to automate, through Task Scheduler, a process to periodically publish XML database data to an endpoint to be consumed by a Web Service client.

    Essentially, the database is constantly being updated with data that needs to be sent to another organization via HTTP on a periodic basis in XML format for "regulatory" purposes. Since, this is a "regulatory" mandated functionality request, a significant number of organizations would be able to migrate from using "pen and paper" to a Visual…

    1 vote
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  19. async property

    If you guys provide async Properties

    public async Task<Config> Config()
    {
    get
    {
    if (_config == null)
    await this.LoadConfigFile();

    return _config;
    }
    }

    1 vote
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
  20. new job

    Give me a job on microsoft

    1 vote
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

Feedback and Knowledge Base