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. Drag and drop one or more classes in Solution Explorer to a project folder

    Drag and drop a class from a solution cs file to a new file. If a single cs file exists for several classes they should be able to be extracted through a drag and drop mechanism by simply selecting on the classes in solution explorer and then moving them to an alternate location or folder.

    0 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 →
    • Add methods to clone an object tree or a part of it

      Creating objects similar to others already existing is a common pattern that requires a lot of typing and bore just to map the properties of one into the other.
      There should exist an extension method on the "object" object that could allow to create an object just cloning another one, with it's entere tree, or even better, until a determinate level of depth.

      0 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 →
      • Use "private override sealed" to fully seal-off methods

        This would seem to be non-breaking.

        C# doesn't allow override to change the visibility (public/protected/private) of a virtual method. In reality there does not seem to be a problem with allowing the visibility to be reduced. In particular it would make for more "clean" code if "public virtual" (in particular) and "protected virtual" could be overridden with "private override sealed".

        If there is a concern regarding the larger overall reduction in visibility, consider limiting it to sealed-only.

        Right now an ugly kludge is required to "seal off" a virtual method through the use of "sealed" and then throwing an exception…

        0 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 →
        • In C#, F12 when on an override Definition should go to parent

          Hitting F12 on the use of a method (property, etc) should go to the method definition. Hitting F12 when on the method definition should go to the next higher method definition on the class derivation chain if the method is an override. This "walking up the derivation chain" should continue until the virtual (as opposed to override) definition is finally reached. Alternately, introduce a shortcut mapped "GoToParent" which perhaps might have a wider application. Although it does seem like if one is already on the definition, the next logical thing to do for "GoToDefinition" would be to go to the…

          0 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 →
          • Fix inappropriate generation of compiler error CS1612

            Unfortunately this error can be inappropriately generated when assigning to a property (i.e. invoking a property setter). An immutable struct can still have a valid property setter, as long as the property setter doesn't actually assign to any fields in the struct. For example,

               public struct Relay {
                   public Relay(Func<string> getText, Action<string> setText)
                   {
                           this.GetText = getText;
                           this.SetText = setText;
                   }
                   private readonly Func<string> GetText;
                   private readonly Action<string> SetText;

             …

            0 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 →
            • Warn user when declaring variable in loop

              By accident I sometimes put a variable declaration in a loop - eg

              foreach(var thing in things)
              {
              var x = "something: " + thing.whatever;
              }

              There I should have declared the variable first outside the loop. I think this is probably a common mistake - and can take a while to debug because you often just don't see it.

              Visual Studio should show a warning / underling the text and alert the user.

              0 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 →
              • 0 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 →
                • "throw return" pattern as alternative to "async-await"

                  What I think would be a nice addition to C# would be recognize return as a special keyword of throw, so that you can completely unwind the stack upto the point where UI entered and return a value without raising an exception. This would allow a user to start an async task, add a few continuations to this task, then "throw return" back to the top of the stack to the UI...without using the async keyword at all. Example:
                  void XYZ_Click(…) {
                  if (DeeplyNestedFunction() == 1) {
                  ...
                  }
                  else {
                  ...
                  }
                  }

                  int DeeplyNestedFunction() {
                  if (...) { …

                  0 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 →
                  • (Chinese)希望能够新增加一个控件。它可以打开unity3d文件,但只有启动后的3d画面,前面的可以自由添加,这样可以赋予unity3d多样性

                    (Chinese)希望能够新增加一个控件。它可以打开unity3d文件,但只有启动后的3d画面,前面的可以自由添加,这样可以赋予unity3d多样性

                    0 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 →
                    • Shortcut for creating tasks

                      Map this:

                      static Task MethodAsync() {
                      Task A = new Task(() => {
                      Console.WriteLine("A:begin");
                      for (int i=0; i < 10000; i++) {
                      Console.WriteLine("A:{0}", i);
                      }
                      Console.WriteLine("A:end");
                      doneA = true;
                      });
                      A.Start();
                      return A;
                      }

                      Into this:

                      static TaskNew MethodAsync() {
                      Console.WriteLine("A:begin");
                      for (int i=0; i < 10000; i++) {
                      Console.WriteLine("A:{0}", i);
                      }
                      Console.WriteLine("A:end");
                      doneA = true;
                      }

                      0 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 →
                      • Bitarray CopyTo long or uint

                        Add a BitArray.CopyTo(uint[]) and BitArray.CopyTo(ulong[]) overloading.
                        I have the problem that i have a BitArray with 48bit, which can have all bits to true. If i want to copy it to a ulong it's not a simple converting. A uint or a ulong are a naturally representation of a BitArray.

                        0 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 →
                        • Add a default namespace prefix in visual studio options

                          Currently, it is possible to define a base namespace for each project in a solution individually. However, I believe it would be extremely nice, to define a default namespace prefix for all projects in a solution/future solutions.
                          RIght now it happens ever so often that you forget to change your namespace and you have to do it afterwards.

                          0 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 →
                          • Add a default namespace prefix in visual studio options

                            Currently, it is possible to define a base namespace for each project in a solution individually. However, I believe it would be extremely nice, to define a default namespace prefix for all projects in a solution/future solutions.
                            RIght now it happens ever so often that you forget to change your namespace and you have to do it afterwards.

                            0 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 →
                            • 0 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 →
                              • Incorporates "comprehension expressions" like python in C#

                                Comprehension expressions are powerful when you work with lists. They are very simple to use and with less code it's able to solve many difficult problems.

                                So, here is some examples of comprehension expressions:

                                var L = new {1, 2, 3, 4, 5};
                                for(var i = 0; i < L.length; i++)
                                ... L[i] += 10
                                ...
                                Result:
                                [11, 12, 13, 14, 15]

                                Now with comprehension expression:

                                var L = new {1, 2, 3, 4, 5};
                                L = {n + 10 for n in L}

                                Result:
                                [21, 22, 23, 24, 25]

                                Another sample using filter:

                                var M = new [,]
                                { …

                                0 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 →
                                • Allow to initialize multiple fields to the same value in one statement at constructor call

                                  When using http://github.com/zoomicon/ZUI I would like to write:

                                  FloatingWindow window = new FloatingWindow()
                                  {
                                  Content = display,
                                  Title = IconText = title
                                  };

                                  but I have to write:

                                  FloatingWindow window = new FloatingWindow()
                                  {
                                  Content = display,
                                  Title = title,
                                  IconText = title
                                  };

                                  instead. For consistency, I'd prefer that it supported such assignment. Now it thinks IconText is some external field or similar

                                  0 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 →
                                  • 0 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 →
                                    • loosen c# langauge to allow static functions in namespace and port python math libraries to .net

                                      personally, I think python and javascript sucks as a language... I wish somebody would find a way to map the python and javascript api's into .net so we could get rid of them and use a real program language for everything...

                                      if you have to make c# a little less object oriented and more functional to do that...its worth messing the c# language up to do it just to get rid of the sucky python and javascript languages that everybody loves to hate...

                                      biggest flaw of c# is that it doesn't suck enough to complete with sucky languages like python…

                                      0 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 →
                                      • Allow new in C# without giving Type

                                        see https://zoomicon.wordpress.com/2015/08/23/suggestion-allow-new-in-c-without-giving-type/ for a description of this suggestion

                                        Instead of

                                        List<CultureInfo> result = new List<CultureInfo>();

                                        in C# I’d prefer to be able to write

                                        List<CultureInfo> result = new ();

                                        inside the () one would be able to pass contructor parameters and also they should be able to use

                                        SomeClass v = new (someParam) { someProperty = …, otherProperty = … };

                                        syntax, that is be able to initialize properties of the class

                                        The idea is to allow syntax like:

                                        SomeClass v = new (someParam) { someProperty = …, otherProperty = … };

                                        and

                                        Type v = new (…){…};

                                        which is…

                                        0 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 →
                                        • Elite Pakistani Escorts in Sheikh Zayed Road【+971-524553990】

                                          This suggestion is migrated to Developer Community. Please use below link to view the current status.
                                          https://developercommunity.visualstudio.com/content/idea/351785/elite-pakistani-escorts-in-sheikh-zayed-road971-52.html
                                          We are here to Serve You Excellent Pakistani Escorts in Sheikh Zayed Road We Provide Hot stunning Young Models +971-524553990 for satisfaction you will get all your dream comes true while having fun with these Independent Pakistani Call Girls in Sheikh Zayed Road, Hire an Amazing Service such a Wonderful Naughty Girls who are ready to Offer you Elite Service Call us Now. https://www.vipindian-escorts.com/pakistani-escorts-sheikh-zayed-road/
                                          #PakistaniEscortsInSheikhZayedRoad, #EscortsInSheikhZayedRoad, #PakistaniCallGirlsInSheikhZayedRoad, #CallGirlsInSheikhZayedRoad,

                                          0 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 →

                                          Feedback and Knowledge Base