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. yield retrun a collection

    I would like to yield a collection.
    ...{
    yield "select one:";
    yieldall myList;
    }

    97 votes
    Vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      Signed in as (Sign out)
      You have left! (?) (thinking…)
      4 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

      Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

      - The Visual Studio Team

    • Caller/MemberName/FilePath/LineNumber of .NET 4.5 are not usable in a real tracing API

      The new .NET 4.5 attributes CallerMemberName, CallerFilePath and CallerLineNumber are nice but do not play well with methods that have a format string with a variable argument array like Trace(string fmt, .... params [] object args). It would be helpful to support tracing in a meaningful manner by allowing

      Trace(string fmt, .... params [] object args, [CallerLineNumberAttribute] int line )

      The only way out of this would be to support many overloads which is not nice from the Api usabality point of view.

      97 votes
      Vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        Signed in as (Sign out)
        You have left! (?) (thinking…)
        6 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

        Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

        - The Visual Studio Team

      • Dynamic code generation, plugin loading in Metro/WinRT applications

        It is my understanding, and forgive me if this assumption is incorrect, that code inside a metro application intended to be eventually submitted to the windows store is not capable of any form of dynamic code execution or generation. This means it is not possible, for example, to implement a dynamic language interpreter that generates native code dynamically and executes it (e.g. a JIT engine).

        It also means that any applications that depend on a plugin model for fast and immediate delivery of time-critical updates are also excluded (tax software, for example, often needs to update plugin components on an…

        96 votes
        Vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          Signed in as (Sign out)
          You have left! (?) (thinking…)
          1 comment  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

          Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

          - The Visual Studio Team

        • virtual static method in interfaces & generics

          I want to be able to write code like this:

          public T Create<T>() where T : new(string), operator +
          {
          return new T("something") + new T("something");
          }

          or this:

          public interface IConverter<Tin, Tout>
          {
          static Tout Convert(Tin value);
          }

          public static Tout Convert<TConverter, Tin, Tout>(Tin value)
          where TConverter : IConverter<Tin, Tout>
          {
          return TConverter.Convert(value);
          }

          94 votes
          Vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            Signed in as (Sign out)
            You have left! (?) (thinking…)
            5 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

            Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

            - The Visual Studio Team

          • Enable full-scale CPS via async/await by allowing user-defined classes instead of Task<T> etc

            In the async CTP, I have to use the return type Task<T> (or Task) for any async method. Behind the scenes, this code is expanded do invoke an AsyncMethodBuilder and all kinds of things. The expansion basically allows for generic continuation-passing style. However, the concrete classes Task<T> etc. are really specialized for asynchronous programming using multi-threading.

            If I could use my own type instead of Task<T>/Task, I could use async/await for anything. I could create methods that present a web page in the middle of their execution, and just continue at the next postback. (In fact, that's what I want…

            88 votes
            Vote
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              Signed in as (Sign out)
              You have left! (?) (thinking…)
              8 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

              Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

              - The Visual Studio Team

            • Enable constructor contracts

              That would be great to be able to define methods in interfaces as contructors - I mean a way of forcing the implementers to have a constructor matching the one defined in the interface.
              Also that would be great to have static interfaces (contracts, which static classes can implement).

              85 votes
              Vote
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                Signed in as (Sign out)
                You have left! (?) (thinking…)
                4 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

                Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

                - The Visual Studio Team

              • Enums Constraint for Generics

                Sometimes I have found my self in the need of doint something like:

                where TEnum : Enum

                ... which currently is not possible.

                Workarounds for this do exist, like:

                where TEnum : struct, IConvertible

                ... but it could lead to bugs if not used with care.

                Hope a new constraint for enums could make it for .NET 5.

                Thanks for reading.

                79 votes
                Vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                  4 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

                  Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

                  - The Visual Studio Team

                • Support the Multilingual App Toolkit to WPF or Windows applications

                  The Multilingual App Toolkit is only working for Windows Store apps, this is a great way/help to have multi-language applications and it is needed for any type of applications not only Windows Store apps.

                  66 votes
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                    3 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

                    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.
                    - The Visual Studio Team

                  • Automatically Add Parentheses  and a Semicolon to a Selected Intellisense Method.

                    I wonder how many times developers had to type Parentheses  and Semicolon after selecting a simple Method from Intellisense: for example, foo.ToString();
                    Having to type parentheses  and semicolons all the time, especially for Methods that accept no parameters, is a huge waste of time.
                    Right now a Tab key selects the method with no Parentheses  or Semicolon, so I would suggest Tab Tab or other key combination that could give the developer the freedom to complete the sentence period.

                    66 votes
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      5 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

                      Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we havenÕt acted on it. Looking at the VS Ò15Ó plans, weÕre not going to take action on this item, so weÕre going to close it. If the suggestion is still relevant, please either take a look to see if thereÕs another suggestion thatÕs similar that you can vote on, or open a new suggestion.

                      - The Visual Studio Team

                    • Allow C# to add Event handlers to classes using codebehind navigation bar the same way as in VB.NET

                      In VB.NET, when you use the navigation bar (the two drop down boxes) at the top of a class/codebehind file, you select the object in the left drop down, and see a list of available events for that object type in the right drop down (regardless if they have handlers attached to those events), when you select one of those events, a new event handler will be written for you in the code, or if a handler already exists, that handler gets scrolled into view.

                      In C#, this behaviour does not exist, and it assumes the programmer knows the name…

                      62 votes
                      Vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        4 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

                        Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

                        - The Visual Studio Team

                      • Add auto implement feature to C# language

                        This is a pain to wrap a class by an other, and implement inner class intreface on outer class which is exposed by an inner instance.

                        My suggestion is for example:

                        interface IFoo
                        {
                        void DoSometing();
                        int GetOtherThing();
                        }

                        class Foo : IFoo
                        {
                        void DoSometing() { ... }
                        int GetOtherThing() { ... }
                        }

                        interface IStuff
                        {
                        void DoNothing();
                        void PutSomething(int s);
                        }

                        class Stuff : IStuff
                        {
                        void DoNothing() { ... }
                        void PutSomething(int s) { ... }
                        }

                        class All : IStuff, IFoo
                        {
                        public All(Foo foo, Stuff stuff)
                        {
                        Foo = foo;
                        Stuff = stuff;
                        }

                        59 votes
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                          6 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

                          Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

                          - The Visual Studio Team

                        • Allow multiple properties in a class to be changed at once, like some kind of "with" clause.

                          Delphi and VB have the ability to set multiple properties in one statement without having to refer to the parent object.

                          For example:

                          with myObject
                          .Prop1 =
                          .Prop2 =
                          .Prop3 =
                          etc

                          C# does have the class initializer syntax, which is great, but it would be better if we could do this AFTER the class has been initialized. Something like this:

                          with (myObject)
                          {
                          Property1 = "***",
                          Property2 = "yyy",
                          Property3 = "zzz"
                          };

                          58 votes
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                            5 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

                            Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we havenÕt acted on it. Looking at the VS Ò15Ó plans, weÕre not going to take action on this item, so weÕre going to close it. If the suggestion is still relevant, please either take a look to see if thereÕs another suggestion thatÕs similar that you can vote on, or open a new suggestion.

                            - The Visual Studio Team

                          • Autoconvert between C# and VB

                            It was a big and great step to merge C and Visual Basic language in VS by using C# and VB.Net Syntax. But now, it is needed to split or convert projects. It would be creat to have an solution to convert a class in Visual Studio or use both classes in same project.

                            58 votes
                            Vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              Signed in as (Sign out)
                              You have left! (?) (thinking…)
                              4 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

                              Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

                              - The Visual Studio Team

                            • Multiple properties like eclipse ide

                              in java ide like eclipse developer create multiple getter and setter method just selecting multiple fields
                              but in visual studio we one by one .

                              53 votes
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                Signed in as (Sign out)
                                You have left! (?) (thinking…)
                                0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

                                Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

                                - The Visual Studio Team

                              • Modify switch case to work like VB Select

                                Modify the Switch Case so it has the same capabilities as the VB Select Case, Case statements don't have to be constants

                                switch ( true){
                                case (x==1 && y==3):
                                break;
                                case (x==1&&y>3):
                                break;
                                case x == 2:
                                break;
                                }

                                53 votes
                                Vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                  7 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

                                  Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

                                  - The Visual Studio Team

                                • Edit & Continue: Support for generics

                                  There are 3 main areas where Edit & Continue doesn't work, this reduces speed of development significantly in some cases. I suggest that this great feature is improved to cope with newer features of Visual Studio:

                                  - Support for Generics

                                  53 votes
                                  Vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    Signed in as (Sign out)
                                    You have left! (?) (thinking…)
                                    1 comment  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

                                    Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

                                    - The Visual Studio Team

                                  • Integrate Code Contract Keywords into the main .Net Languages

                                    Being able to write Code Contract Keywords would be much more useful than having to write the well-known Rules in the syntax of Statements.
                                    This is especially true for interfaces where we have to construct artificial classes just as a vehicle to be able to specify Code Contract Rules.
                                    After all Code Contracts are rules, not code.

                                    51 votes
                                    Vote
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      Signed in as (Sign out)
                                      You have left! (?) (thinking…)
                                      3 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

                                      Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

                                      - The Visual Studio Team

                                    • Improve link-based projects UI and UX

                                      I want to be able to configure a C# project so it recursively links code files and asset files that reside in another folder, being able to better organize my project architecture and share everything that can be shared between different projects, without having to create code libraries and such.

                                      What is implemented:
                                      - You can manually link files in the Add\Existent Item wizard. Having a programmer do manual and repetitive tasks? Madness? No, this is SP... You get the point.
                                      - Edit the .csproj file and insert something like this, that will recursively link .cs files and folder structure,…

                                      51 votes
                                      Vote
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        Signed in as (Sign out)
                                        You have left! (?) (thinking…)
                                        2 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

                                        Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.
                                        - The Visual Studio Team

                                      • Provide support for the new rdrand instruction for use with random number generation.

                                        According to Intel press releases, the Ivy Bridge cpu will incorporate a new hardware random number generator (rng). The cpu instruction to use the new rng is called rdrand. Can you please create a way to use this new instruction from all of the .NET languages (C#, VB.NET, etc.).

                                        It would make the most sense if you provided a way for this instruction to be used as quickly as possible with a simple update and then release a more thorough update that includes functionality in all of the classes that use random numbers sevearl months or years down the road.

                                        50 votes
                                        Vote
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          Signed in as (Sign out)
                                          You have left! (?) (thinking…)
                                          7 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

                                          Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.

                                          - The Visual Studio Team

                                        • Auto Properties: readonly setter, object-initializer setter

                                          For auto properties Introduce 2 new access modifiers for the setter.

                                          public int MyReadonlyValue {get; readonly set;}

                                          The property can only be set in a constructor of the declaring class. Is more restrictive than private. Intended to be a less verbose way of having a readonly field.

                                          public int MyInitValue {get; init set;}

                                          The property can only be set within an object initialization segment
                                          The intent of b is to improve support for immutable objects.

                                          e.g.

                                          var myCreation = new SomeClass { MyInitValue = 10 };
                                          myCreation.MyInitValue = 12 ; //should be compiler error!

                                          50 votes
                                          Vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            Signed in as (Sign out)
                                            You have left! (?) (thinking…)
                                            6 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →

                                            Thanks for taking the time to share this suggestion. This item has been around for a couple of versions of Visual Studio and we haven’t acted on it. Looking at the VS “15” plans, we’re not going to take action on this item, so we’re going to close it. If the suggestion is still relevant, please either take a look to see if there’s another suggestion that’s similar that you can vote on, or open a new suggestion.
                                            - The Visual Studio Team

                                          ← Previous 1 3 4 5 30 31

                                          Feedback and Knowledge Base