Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6595285
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T17:55:14+00:00 2026-05-25T17:55:14+00:00

I have a base class that has a virtual property: public virtual string Name

  • 0

I have a base class that has a virtual property:

public virtual string Name { get; set; }

then I have a derived class that overrides only the getter of the property

public override string Name
{
    get { return "Fixed Name"; }
}

The problem is this only overrides the getter. If someone calls the setter the base class setter will get called, and the caller won’t know that it’s ineffective.

So I thought I’d do something like:

public override string Name
{
    get { return "Fixed Name"; }
    set { throw new Exception(); } //which exception type?
}

So two (related questions):

  1. Is there a better pattern for me to use?
  2. If I should be using the above pattern, what exception to use?

Edit: Some reasons why one exception would be preferred over another would be good. My co-worker and I have had the same argument between NotSupported and InvalidOperation.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-25T17:55:15+00:00Added an answer on May 25, 2026 at 5:55 pm

    Throw NotSupportedException exception.
    Quote from the link:

    There are methods that are not supported in the base class, with the
    expectation that these methods will be implemented in the derived
    classes instead. The derived class might implement only a subset of
    the methods from the base class, and throw NotSupportedException for
    the unsupported methods.

    My opinion is that InvalidOperationException is not a correct option.
    Quote from MSDN:

    The exception that is thrown when a method call is invalid for the
    object’s current state.

    There is nothing about current state in your situation. It is that the class contract does not support the operation.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a base class that has the following property: public virtual Dictionary<String, int>
I have a virtual class that has been derived from a non virtual class.
I have a base class and it has virtual functions. The issue is that,
I have a base class that has a private static member: class Base {
I have a page base class that has no .aspx file and so I
I have a base class Foo that has an Update() function, which I want
I have a base class for many tests that has some helper methods they
I have a abstract base C# class with a couple of methods that has
I have this class that has a static member. it is also a base
I have a class generated from a WSDL that has a bunch of public

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.