Visual Studio IDE

Welcome to the Visual Studio UserVoice site. Let us know what you would like to see in future versions of the Visual Studio suite of products. This site is for suggestions and ideas. If you need to file a bug, you can visit our Developer Community website to get started. 

For suggestions for improvements to other developer products, see these sites:

To review the current UserVoice statuses and their definitions, please review our “What Does the Status of My Feedback Mean?” article.

We look forward to hearing from you!

- The Visual Studio Team
Terms of Service and Privacy Policy

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. Add Runtime Error Prediction

    It would be really useful if there was a "Quick Action Suggestion" for preventing particular runtime errors. For example, if the program contains a function that appends "hello world" to a file, Visual Studio could attempt to append an empty character to the file, in a way "mocking a write" before runtime. If Visual Studio is blocked from doing so, a yellow line could appear under the potentially error-causing code. This is pretty much like "testing the waters" for potential errors.

    4 votes
    Vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      You have left! (?) (thinking…)
      0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
    • Privide the csi as an integrated extension to VS Code

      Seamlessly integrate the revived CSI (C# Interactive) REPL with VS Code and CoreCLR so that I can do REPL F# and C# development with the REPL and VS Code on any OS

      4 votes
      Vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        I agree to the terms of service
        Signed in as (Sign out)
        You have left! (?) (thinking…)
        0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
      • Automatically cast null when assigning to a nullable type

        At present, when assigning null to a nullable type variable you have to cast it as the nullable type, e.g.

        DateTime? nullableDate = string.IsNullOrEmpty(someDateString)
        ? (DateTime?)null
        : DateTime.Parse(someDateString);

        It would be nice if the cast wasn't required e.g.

        DateTime? nullableDate = string.IsNullOrEmpty(someDateString)
        ? null
        : DateTime.Parse(someDateString);

        4 votes
        Vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          I agree to the terms of service
          Signed in as (Sign out)
          You have left! (?) (thinking…)
          0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
        • add file type to advanced search

          please add file type to advanced search, when i want somethings in c# files why show me js file or other type,

          4 votes
          Vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            I agree to the terms of service
            Signed in as (Sign out)
            You have left! (?) (thinking…)
            0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
          • Allow ?. operator to be used in assignments

            The ?. operator is great for reading values from classes

            var a = c?.Foo;

            It would be great if it could also be used for assigning values as well.

            c?.Foo = 4;

            My feeling is that this should be really easy for properties, since the setter gets generated as method set_Foo(...), and thus c?.set_Foo(4)

            I would also think it it would be doable for normal field members, since it should just be like

            var tmp = c;
            if (tmp != null) {
            tmp.Foo = 4;
            }

            4 votes
            Vote
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              I agree to the terms of service
              Signed in as (Sign out)
              You have left! (?) (thinking…)
              0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
            • Exceptions within async partial void method() cause the app domain to crash

              C# allows you to write code as follows...

              public partial class MyCodeGeneratedClass
              {
              public async Task MyCodeGeneratedMethod()
              {
              HttpClient client = new HttpClient();
              Console.WriteLine(await client.GetStringAsync("http://msdn.microsoft.com"));
              MyCustomCode();
              }

              partial void MyCustomCode();
              }

              partial class MyCodeGeneratedClass
              {
              async partial void MyCustomCode()
              {
              HttpClient client = new HttpClient();
              Console.WriteLine(await client.GetStringAsync("http://msdn.microsoft.com"));
              throw new Exception("Boom");
              }
              }

              Calling MyCodeGeneratedMethod in a console application, brought down the app domain.

              In the case of partial methods the return type must be void and you cannot have ref or out parameters. With the proliferation of async methods in libraries, this limitation is now much…

              4 votes
              Vote
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                I agree to the terms of service
                Signed in as (Sign out)
                You have left! (?) (thinking…)
                1 comment  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
              • Support labels on loop control statements

                Allow break and continue statements to specify which loop they refer to, rather than always binding them to the innermost loop. For example:

                FileLoop:
                foreach (string fileName in fileList)
                {
                . . string[] lines = getLines(fileName);

                . . for (int lineNum = 0; lineNum < lines.Length; ++lineNum)
                . . {
                . . . . foreach (string word in splitLineToWords(lines[lineNum]))
                . . . . {
                . . . . . . if (word == targetWord)
                . . . . . . {
                . . . . . . . . Console.WriteLine(fileName + " has the target at line " + (lineNum…

                4 votes
                Vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  I agree to the terms of service
                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                  3 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                • intellisense in cross-platform (android...)

                  Develop intellisense (help in writing code) for cross-platform (Java, Android, ..) in C# coding.

                  4 votes
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    I agree to the terms of service
                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                  • Use xml config files in VNext instead of JSon

                    I just tried out the CTP 4 of Visual Studio 2014 and tried to create a VNext Web Application.

                    And instead of a web.config file it has a JSon file that cannot even read.

                    Xml is so much easier to read and collapse.

                    I won't use it because it is MVC also, but at least with a Config file I could read and edit I might use the product.

                    4 votes
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      I agree to the terms of service
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                    • create pathof keyword, similar to nameof keyword

                      nameof(MyProperty.ReferencedObject.Name) solves "Name".

                      pathof(MyProperty.ReferencedObject.Name) would solve "MyProperty.ReferencedObject.Name".

                      That would be useful in expressions.

                      4 votes
                      Vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        I agree to the terms of service
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        1 comment  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                      • Add AssemblyLicenseName and AssemblyLicenseText Attributes to the System.Reflection namespace

                        System.Reflection already contains a lot of Attributes that can be applied to Assemblies, like AssemblyCopyrightAttribute or AssemblyDescriptionAttribute. For open source projects it would be nice to have Attributes like AssemblyLicenseName and AssemblyLicenseText, which could be used make the name and content of a license available via reflection.

                        Many open-source licenses (even non-copyleft licenses like BSD) require the user of the software to redistribute the license text. Authors of open-source libraries often either put the license text in a simple textfile or (as a comment) in every sinigle code file. Users of such libraries have to manually copy the license text…

                        4 votes
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          I agree to the terms of service
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                          0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                        • add C# ability to use using namespace in any scope

                          currently, using namespace is limited to file or other namespace scope. Allow it to be used in methods, and any compound statement

                          4 votes
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            I agree to the terms of service
                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                            0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                          • Add implicit property declaration

                            TypeScript has a great feature (described also here: https://www.stevefenton.co.uk/2013/04/stop-manually-assigning-typescript-constructor-parameters/) that spares a lot of time when writing classes. My suggestion could be a syntactic sugar by adding the possibility to use one of the following keywords when declaring constructor formal parameters: public, private, protected, privateset, protectedset, base as the following example demonstrates:

                            abstract class Animal
                            {
                            public Animal(public int age, protected string race; protectedset string name)
                            {
                            ....
                            }
                            }

                            Would automatically add following properties (and set default value if provided):
                            public int age {get; set;}
                            protected string race {get; set;}
                            public string name {get; protected set;}

                            While:

                            class…

                            4 votes
                            Vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              I agree to the terms of service
                              Signed in as (Sign out)
                              You have left! (?) (thinking…)
                              0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                            • REGEX exact match improvement

                              Kindly asking you to implement the small improvement to c# regex
                              the idea is following
                              .{,3} - up to 3 symbols match
                              .{3,5} - between 3 to 5 symbols match
                              .{3,} - 3 and more
                              .{3} - exactly 3 symbols
                              I need the next mentioned improvement (!)
                              .{3|4|5... etc.} - exactly 3 or 4 or ...

                              for instance match like this (.{3}(?:.{2})?) is not pretty useful because when quantity of symbols is 4, the match of 3 symbols is still present!
                              I need matches with exactly 3 OR 5 symbols... OR ... etc (if mentioned in mask) and no matches…

                              4 votes
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                I agree to the terms of service
                                Signed in as (Sign out)
                                You have left! (?) (thinking…)
                                0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                              • Interactive Window Code Completion with Tab-Tab

                                In the Interactive Windows (C#/F#) it would be great to have the Intellisense complete the code block by pressing TAB-TAB like in a normal code editing window.

                                4 votes
                                Vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  I agree to the terms of service
                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                  0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                                • Permit limited simplified LINQ in foreach loops

                                  foreach(var blah in someEnumerable
                                  where blah.Property > 10
                                  orderby blah.OtherProperty)

                                  4 votes
                                  Vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    I agree to the terms of service
                                    Signed in as (Sign out)
                                    You have left! (?) (thinking…)
                                    0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                                  • Can you add console input (like Console.ReadLine()) to C# interactive?

                                    Please add support to console input to C# interactive.

                                    4 votes
                                    Vote
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      I agree to the terms of service
                                      Signed in as (Sign out)
                                      You have left! (?) (thinking…)
                                      0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                                    • 4 votes
                                      Vote
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        I agree to the terms of service
                                        Signed in as (Sign out)
                                        You have left! (?) (thinking…)
                                        1 comment  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                                      • C# Interactive Window DataTips

                                        It would be very helpful to add DataTips to the C# Interactive Window. When I am dynamically writing/running code in the Interactive Window, I need to be able to inspect the properties of my in-memory variables, just like I do when running a solution in debug mode. Having to use Console.Writeline() to display this information is very inconvenient.

                                        Thanks,

                                        John

                                        4 votes
                                        Vote
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          I agree to the terms of service
                                          Signed in as (Sign out)
                                          You have left! (?) (thinking…)
                                          1 comment  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                                        • Need IL calli methods in C# unsafe mode

                                          May emulation of delegate for end compile calli, i use this code for generation static fields COM for DirectX invoke:
                                          protected static DELEGATE Import<DELEGATE>(int method) where DELEGATE : class {
                                          #if TRACE
                                          if (method < 0)
                                          throw new System.ArgumentOutOfRangeException("method");
                                          #endif
                                          var delegateType = typeof(DELEGATE);
                                          #if TRACE
                                          if (!delegateType.IsSubclassOf(typeof(System.MulticastDelegate)))
                                          throw new System.ArgumentOutOfRangeException("DELEGATE");
                                          #endif
                                          var delegateInvoke = delegateType.GetMethods()[0];
                                          var returnType = delegateInvoke.ReturnType;
                                          var delegateParameters = delegateInvoke.GetParameters();
                                          #if TRACE
                                          if (delegateParameters.Length < 1)
                                          throw new System.ArgumentOutOfRangeException("DELEGATE");
                                          #endif
                                          var parameterTypes = new System.Type[delegateParameters.Length];
                                          var parameterMount = delegateParameters.Length - 1;
                                          for (int parameterIndex = parameterMount; parameterIndex >= 0; parameterIndex--)
                                          parameterTypes[parameterIndex] = delegateParameters[parameterIndex].ParameterType;
                                          #if TRACE
                                          if…

                                          4 votes
                                          Vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            I agree to the terms of service
                                            Signed in as (Sign out)
                                            You have left! (?) (thinking…)
                                            0 comments  ·  Languages - C#  ·  Flag idea as inappropriate…  ·  Admin →
                                          1 2 9 11 13 32 33
                                          • Don't see your idea?

                                          Feedback and Knowledge Base