Is this implementation of factory design pattern in C#? Here are my class library code which create credit card.
public abstract class CreditCard
{
    public CardType CardType { get; protected set; }
    public decimal CreditLimit { get; protected set; }
    public decimal AnnualCharge { get; protected set; }
}

public class GoldCreditCard : CreditCard
{
    private GoldCreditCard(decimal creditLimit, decimal annualCharge)
    {
        CardType = CardType.Gold;
        CreditLimit = creditLimit;
        AnnualCharge = annualCharge;
    }

    /// &lt;summary&gt;
    /// Factory pattern
    /// &lt;/summary&gt;
    /// &lt;returns&gt;&lt;/returns&gt;
    public static CreditCard Create()
    {
        return new GoldCreditCard(creditLimit: 15000, annualCharge: 100);
    }
}

public class TitaniumCreditCard : CreditCard
{
    private TitaniumCreditCard(decimal creditLimit, decimal annualCharge)
    {
        CardType = CardType.Titanium;
        CreditLimit = creditLimit;
        AnnualCharge = annualCharge;
    }

    /// &lt;summary&gt;
    /// Factory pattern
    /// &lt;/summary&gt;
    /// &lt;returns&gt;&lt;/returns&gt;
    public static CreditCard Create()
    {
        return new TitaniumCreditCard(creditLimit: 30000, annualCharge: 250);
    }
}

and the ui will be:
    static void Main(string[] args)
    {
        CreditCard card;

        System.Console.WriteLine(&quot;Select your card type&quot;);
        System.Console.WriteLine(&quot;1. Gold Credit Card&quot;);
        System.Console.WriteLine(&quot;2. Titanium Credit Card&quot;);
        var option = System.Console.ReadLine();
        switch (option)
        {

            case &quot;1&quot;:
                card = GoldCreditCard.Create();
                PrintCard(card);
                break;
            case &quot;2&quot;:
                card = TitaniumCreditCard.Create();
                PrintCard(card);
                break;
            default:
                break;
        }

    }

    static void PrintCard(CreditCard card)
    {
        System.Console.WriteLine($&quot;Your credit card has been successfully created.&quot;);
        System.Console.WriteLine($&quot;The credit card type is {card.CardType}.&quot;);
        System.Console.WriteLine($&quot;The credit card limit is {card.CreditLimit:C}.&quot;);
        System.Console.WriteLine($&quot;The credit card annual fee is {card.AnnualCharge:C}.&quot;);
    }

Is this implementation of factory design pattern in C#?
In your implementation you have smashed together two separate roles: Product and Creator.
Your implementation is equivalent with the following:
public class GoldCreditCard : CreditCard
{
    private GoldCreditCard(decimal creditLimit, decimal annualCharge)
    {
        CardType = CardType.Gold;
        CreditLimit = creditLimit;
        AnnualCharge = annualCharge;
    }

    public GoldCreditCard()
    {
        CardType = CardType.Gold;
        CreditLimit = 15000; 
        AnnualCharge = 100;
    }
}

Or almost with this one (this provides more flexibility):
public class GoldCreditCard : CreditCard
{
    public GoldCreditCard(decimal creditLimit = 15000, decimal annualCharge = 100)
    {
        CardType = CardType.Gold;
        CreditLimit = creditLimit;
        AnnualCharge = annualCharge;
    }
}

The whole point of the pattern is that only the Creator (Factory) knows how to setup a concrete product. In your case your class knows how to initialize itself.