Documentation

    Table of Content
    • CodePorting.Translator Product Family
      • CodePorting.Translator Cs2Cpp
        • Getting Started
          • Product Overview
          • Installation
          • Licensing
          • How to use CodePorting.Translator Cs2Cpp
            • How to Use Command line to translate and build Projects
            • How to Use GUI to translate and build Projects
        • Developer Guide
          • Translating Simple C# Projects
            • Translating Simple Console Application
            • Translating Simple Library
            • Translating Simple NUnit Test
          • Translating Dependent C# Projects
            • Translating Dependent Console Application
            • Translating Dependent Library
            • Translating Dependent NUnit Test
          • Qt support
          • Translating Complex C# Projects
            • How to Convert Complex C# Console Application to C++
            • How to Convert Complex C# Library to C++
            • How to Convert Complex C# NUnit Test to C++
          • What Converts to What
            • AbstractClasses
            • BreakStatements
            • ClassAutoProperties
            • ClassConstructors
            • ClassEvents
            • ClassFinalizers
            • ClassGenericMethods
            • ClassIndexers
            • ClassMethods
            • ClassProperties
            • ClassStaticConstructor
            • ClassStaticMethods
            • ClassStaticProperties
            • ClassVirtualMethods
            • ContinueStatements
            • Delegates
            • DoWhileStatements
            • Enums
            • EnumTypeCast
            • Exceptions
            • ExpectedException
            • ForeachStatements
            • ForeachStatementsStd
            • ForStatements
            • GenericClasses
            • GenericDelegates
            • GenericInterfaces
            • GenericStructs
            • IfStatements
            • LambdaExpressions
            • NestedClasses
            • ReturnStatements
            • SimpleClass
            • SimpleInterface
            • SimpleStruct
            • SimpleTest
            • StandardTypeCast
            • StaticClass
            • SwitchStatements
            • TestWithSetupMethods
            • ThrowStatements
            • TryCatchFinallyStatements
            • TryCatchStatements
            • TryFinallyStatements
            • VarExpressions
            • WhileStatements
          • CodePorting Translator Cs2Cpp Attributes
          • CodePorting Translator Cs2Cpp Configuration File
            • CodePorting.Translator Cs2Cpp Configuration File Structure
            • Attributes in Configuration file
            • Configuration file Nodes
            • Configuration file Options
          • Memory Management Model
            • Memory Management Model Description
            • Using aliasing constructor to create a smart pointer
          • Cmake Support
          • C++ code injection
          • C++ user-defined exception classes
          • Limitations and Bugs
            • Translator Limitations and Bugs
            • Library Limitations and Bugs
            • Cpp Code Injection
        • Release Notes
          • 2022
            • CodePorting.Translator Cs2Cpp 22.6
            • CodePorting.Native Cs2Cpp 22.5
            • CodePorting.Native Cs2Cpp 22.4
            • CodePorting.Native Cs2Cpp 22.3
            • CodePorting.Native Cs2Cpp 22.2
            • CodePorting.Native Cs2Cpp 22.1
          • 2021
            • CodePorting.Native Cs2Cpp 21.12
            • CodePorting.Native Cs2Cpp 21.11
            • CodePorting.Native Cs2Cpp 21.10.1
            • CodePorting.Native Cs2Cpp 21.10
            • CodePorting.Native Cs2Cpp 21.9
            • CodePorting.Native Cs2Cpp 21.8
            • CodePorting.Native Cs2Cpp 21.7
            • CodePorting.Native Cs2Cpp 21.6
            • CodePorting.Native Cs2Cpp 21.5
            • CodePorting.Native Cs2Cpp 21.4
            • CodePorting.Native Cs2Cpp 21.3
            • CodePorting.Native Cs2Cpp 21.2
            • CodePorting.Native Cs2Cpp 21.1
          • 2020
            • CodePorting.Native Cs2Cpp 20.12
            • CodePorting.Native Cs2Cpp 20.11
            • CodePorting.Native Cs2Cpp 20.10
            • CodePorting.Native Cs2Cpp 20.9
            • CodePorting.Native Cs2Cpp 20.8
            • CodePorting.Native Cs2Cpp 20.7
            • CodePorting.Native Cs2Cpp 20.6
            • CodePorting.Native Cs2Cpp 20.5
            • CodePorting.Native Cs2Cpp 20.4
            • CodePorting.Native Cs2Cpp 20.3
            • CodePorting.Native Cs2Cpp 20.2
            • CodePorting.Native Cs2Cpp 20.1
          • 2019
            • CodePorting.Native Cs2Cpp 19.1
            • CodePorting.Native Cs2Cpp 19.2
            • CodePorting.Native Cs2Cpp 19.3
            • CodePorting.Native Cs2Cpp 19.4
            • CodePorting.Native Cs2Cpp 19.4.1
            • CodePorting.Native Cs2Cpp 19.5
            • CodePorting.Native Cs2Cpp 19.6
            • CodePorting.Native Cs2Cpp 19.7
            • CodePorting.Native Cs2Cpp 19.8
            • CodePorting.Native Cs2Cpp 19.9
            • CodePorting.Native Cs2Cpp 19.10
            • CodePorting.Native Cs2Cpp 19.11
            • CodePorting.Native Cs2Cpp 19.12
          • 2018
            • CodePorting.Native Cs2Cpp 18.9
            • CodePorting.Native Cs2Cpp 18.9.1
            • CodePorting.Native Cs2Cpp 18.10
            • CodePorting.Native Cs2Cpp 18.11
            • CodePorting.Native Cs2Cpp 18.12
    1. Home
    2. CodePorting.Translator Product Family
    3. CodePorting.Translator Cs2Cpp
    4. Developer Guide
    5. What Converts to What
    6. ClassStaticProperties

    ClassStaticProperties

    What's on this Page

      • Source C# Code
      • Translated Code
        • C++ Header
        • C++ Source Code

    This example demonstrates how class static properties are translated. Static properties may have getter, setter, or both. Public, protected and private static properties preserve their accessibility level. Internal static properties become protected. Getters are translated to static methods with prefix get_ and setters with prefix set_.

    Additional command-line options passed to CodePorting.Translator.Cs2Cpp: none.

    Source C# Code

    namespace MembersPorting
    {
        public class ClassStaticProperties
        {
            public static int PublicProperty { get; set; }
    
            internal static string InternalProperty { get; set; }
    
            protected static int ProtectedProperty { get; set; }
    
            private static int PrivateProperty { get; set; }
        }
    }

    Translated Code

    C++ Header

    #pragma once
    
    #include <system/string.h>
    #include <cstdint>
    
    namespace MembersPorting {
    
    class ClassStaticProperties : public System::Object
    {
        typedef ClassStaticProperties ThisType;
        typedef System::Object BaseType;
        
        typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
        RTTI_INFO_DECL();
        
    public:
    
        static int32_t get_PublicProperty();
        static void set_PublicProperty(int32_t value);
        
    protected:
    
        static System::String get_InternalProperty();
        static void set_InternalProperty(System::String value);
        static int32_t get_ProtectedProperty();
        static void set_ProtectedProperty(int32_t value);
        
    private:
    
        static int32_t pr_PublicProperty;
        static System::String pr_InternalProperty;
        static int32_t pr_ProtectedProperty;
        static int32_t pr_PrivateProperty;
        
        static int32_t get_PrivateProperty();
        static void set_PrivateProperty(int32_t value);
        
    };
    
    } // namespace MembersPorting
    

    C++ Source Code

    #include "ClassStaticProperties.h"
    
    namespace MembersPorting {
    
    RTTI_INFO_IMPL_HASH(4083627313u, ::MembersPorting::ClassStaticProperties, ThisTypeBaseTypesInfo);
    
    int32_t ClassStaticProperties::pr_PublicProperty = 0;
    System::String ClassStaticProperties::pr_InternalProperty;
    int32_t ClassStaticProperties::pr_ProtectedProperty = 0;
    int32_t ClassStaticProperties::pr_PrivateProperty = 0;
    
    int32_t ClassStaticProperties::get_PublicProperty()
    {
        return pr_PublicProperty;
    }
    
    void ClassStaticProperties::set_PublicProperty(int32_t value)
    {
        pr_PublicProperty = value;
    }
    
    System::String ClassStaticProperties::get_InternalProperty()
    {
        return pr_InternalProperty;
    }
    
    void ClassStaticProperties::set_InternalProperty(System::String value)
    {
        pr_InternalProperty = value;
    }
    
    int32_t ClassStaticProperties::get_ProtectedProperty()
    {
        return pr_ProtectedProperty;
    }
    
    void ClassStaticProperties::set_ProtectedProperty(int32_t value)
    {
        pr_ProtectedProperty = value;
    }
    
    int32_t ClassStaticProperties::get_PrivateProperty()
    {
        return pr_PrivateProperty;
    }
    
    void ClassStaticProperties::set_PrivateProperty(int32_t value)
    {
        pr_PrivateProperty = value;
    }
    
    } // namespace MembersPorting