Visual Studio IDE

Announcement: Last fall, we migrated this forum to Visual Studio Developer Community to provide you one convenient and responsive system for all feedback. As the final step in the migration, this forum will be closed off completely on June 1st, 2019. We encourage you to visit Visual Studio Developer Community where you can now suggest new ideas, browse and vote on existing ideas, and engage with Visual Studio teams.

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. C# slices support

    Support for slices.

    var list = new List<int>() { 1, 3, 3, 7, 8, 9 };
    var slice = list[0..3];

    48 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  2. Add match...with pattern matching (like F#)

    F# has an amazingly powerful pattern matching feature built in (match..with).

    Like a turbo-charged switch..case statement.

    This would be so powerful in C#. But PLEASE make sure you implement the feature that allows the match case to be pushed in to a variable for use in the pattern itself.

    47 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  3. Enable inline XML för C# as it is in VB.Net

    In VB.Net you can easily create an XDocument using inline XML.

    Dim doc As XDocument = <?xml version="1.0" encoding="utf-8 standalone="yes">
    <Order>
    <Customer>...some customer info...</Customer>
    <Item Product="Drunken Lemur" Quantity="5" ListPrice="100.00" Discount="95%" />
    <Item Product="Sober Lemur" Quantity="25" ListPrice="150.00" Discount="5%" />
    </Order>

    It would be neat if I could populate an XDocument using inline XML in C#.

    47 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  4. method signature tooltip - layout improvment

    When I hover the method calling code I get full signature of the method in the tooltip, which is great.

    The problem is when the returned type of method result and class/interface that contains the method is deeply nested in namespaces tree we get something like:

    GlobalNamespace.Module1.Utils.Something.Else.MethodResultClass GlobalNamespace.Module1.Utils.Again.Something.Else.Interfaces.MyInterface.MyMethod(GlobalNamespace.Module1.Utils.Something.Totally.Else.Parameters.ThatOneClass parameter)

    in the picture I you can find simple example with really shallow namespace tree and it's still pretty hard to read. It would be great if you guys at least bold the return type or anyhow else improve displaying that tooltip.

    46 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  5. Allow binary notation to assign variables in c#

    Would like to be able to assign values to variables in binary.

    E.g. int i = 0b10101010;

    You can already do this with decimal and hex, E.g.
    int i = 170;
    int i = 0xAA;

    There are known workarounds to the issue such as Convert.ToInt32("10101010", 2); but this is hardly convenient when dealing with a lot of binary.

    46 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  6. Allow operators (==, !=, >, <, etc.) to be defined for interfaces

    Currently it is not possible to define custom evaluations for the == and != operators on interfaces. Using these operators is more natural than calling Equals() for most code writers. Not being able to define them makes refactoring (to interfaces) error prone and tedious. This is especially annoying since the build-in interface IEquatable<> already defines a way to recognize the existence of such custom evaluations at compile time.

    The same is true for >, <, etc. operators and IComparable<>.

    In contrast extension methods already allow the definition of complex algorithms based on interfaces - which is fine. Why not extend…

    46 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  7. Add inheritance for xml documentation from base class/interface

    It would be very convenient if you could declaratively inherit documentation from a parent interface/base class so that you don't need to keep documentation updates in sync in multiple places.

    Something along the lines of /// <inherit source="FirstParent" restrict="Project" /> type of tag where the source is an enumeration saying how high up to go until it finds documentation (parent/first parent with documentation, abstract class, interface, etc.) and restrict being an enumeration to restrict it to a project/solution/referenced library/bcl.

    Typically I would only use this for documentation inheritance between a class and it's interface, but they may not necessarily be…

    46 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  8. 44 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  9. Give intellisense for dynamic objects in C#

    Currently dynamic objects in C# do not get intellisense, because they are dynamic. However, it would be possible for intellisense to show properties and methods on dynamic objects that were being added elsewhere in your code.

    For example, if I do this:

    dynamic foo = new Foo();
    foo.Bar = 123;
    M(foo);

    And then I do this:

    M(dynamic foo)
    {
    foo.
    }

    When I type 'foo' followed by '.', it should be able to figure out that I had put the Bar property on foo.

    43 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  10. 40 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  11. Support implicit interfaces for code reuse

    Allow us to cast a type to an interface which it implements (but does not declare or even know about). The interface can be marked as 'implicit' to ensure recipients understand that the implementation may not know about it.

    The lack of implicit interfaces (and the corresponding lack of header files) in C# and VB.NET is THE PRIMARY ROADBLOCK to good architecture and testing in .NET.

    I cannot see a good defense for the lack of this feature. It does not add clutter or complexity, enables drastically simpler unit tests, and (for the first time), enables interoperable code without forcing…

    40 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  12. Better Visual Studio exception handler templates

    Assume we have to following line of code:

    File.Delete("C:\\test.txt");

    Most (not all) .NET developers will write a generic exception handler like this:

    try
    {
    File.Delete("C:\\test.txt");
    }
    catch ( Exception e ) { //... }
    ...instead of the detailed version handling all exceptions listed in the documentation (MSDN - File.Delete Method):

    try
    {
    File.Delete("C:\\test.txt");
    }
    catch ( ArgumentException arge ) { //... }
    catch ( ArgumentNullException argne ) { //... }
    catch ( DirectoryNotFoundException dnfe ) { //... }
    catch ( IOException ioe ) { //... }
    catch ( NotSupportedException nse ) { //... }
    catch ( PathTooLongException ptle ) {…

    38 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  13. We can create framework for Coded UI to support windows application

    To automate scripts for windows application ,we can create a framework where we can pass all the methods from excel sheet.
    WE will have one batch file to execute all test cases at a time and will get the report in mail too.

    35 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  14. Add property Keyword

    When I create a binding property in c# for wpf I cannot use the shortened syntax: public string MyProp {get; set;}. I have to use this syntax:
    private string _myProp;
    public string MyProp
    {
    get
    {
    return _myProp;
    }
    set
    {
    _myProp = value;
    NotifyPropertyChanged(MyProp);
    }
    }

    I would prefer this syntax:

    public string MyProp
    {
    get;
    set
    {
    property = value;
    NotifyPropertyChanged();
    }
    }

    by this way i have not to create a additional field and the getter can remain how it is.

    35 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  15. tighter integrated tuple syntax

    like described in: http://tirania.org/blog/archive/2009/Dec-23.html

    e.g.

    (user, password, host, port, path) = ParseUri (url);

    34 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  16. Support C# Add() extension methods for collection initializers (like in VB.NET)

    Collection Initializer should consider Add() extension methods as well as the built-in ones, which would allow custom code like this:

    var l = new List<string> { {10,'a'}, {20,'b'} };

    Assuming there exists an extension method

    void Add(this List<string>, int, char)

    Even Microsoft reported that it would be a good idea, but the issue got closed without a followup: https://connect.microsoft.com/VisualStudio/feedback/details/

    33 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  17. C#Doc

    The XML docs C# supports are really ugly and without editor support extremely difficult and cumbersome to write. Even so, the editor support for them is surprisingly limited (unless you use ReSharper).

    The C# compiler and Visual Studio should support JavaDoc/JSDoc style comments as well. They're much cleaner, easier to write/read/understand.

    Making the documentation tools better is essential in increasing their adoption in the first place. The ugliness and complexity of XML docs prevents many people from writing them. XML is for machines to write and read, not humans.

    32 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  18. Proper (generic) type alising

    F# has proper type aliasing, which allows partial resolving of generics:

    type StringDictionary<T> = Dictionary<string, T>

    However, C# only allows type aliasing when the target is fully resolved:

    using StringDictionryOfMyClass = Dictionary<string, MyClass>;

    Doing type aliasing the F# (the "right" away) would be much more useful! Hopefully I can just type:

    using StringDictionary<T> = Dictioanry<string, T>;
    using IStringDictionary<T> = IDictionary<string, T>;

    And get the type alias -- The emitted CIL shoudl be Dictionary<string, T>, not a new interface / class named StringDictionary, since that will break polymorphism (i don't want to introduce new types, just want to rename existing ones…

    32 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  19. Implement inline MSIL in C#

    It would be useful to have inline MSIL in C#, just as C/C++ has inline assembly.
    The C# compiler is severely lacking in the way of optimization. Many times I wish I could write a few lines of MSIL instead of watching the compiler overlook a blindingly obvious optimization, or having to use sub-optimal algorithms in C#.
    Here is an example of what I see inline MSIL to look like:

    public static class InlineMSILExample
    {
    public static void Swap()
    {
    int a = 10;
    int b = 15;

    int tmp = a;
    a = b;
    b = tmp;
    }

    public…

    31 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

  20. 31 votes
    Vote
    Sign in
    (thinking…)
    Sign in with: facebook google
    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

Feedback and Knowledge Base