First add to referance Microsoft.VisualBasic Code: ( vb ) using System; using System.Collections.Generic; using System.Text; using Microsoft.VisualBasic; using Microsoft.VisualBasic.CompilerServices; namespace CallByNameConsole { class _TEST { private string _STR = "Called By The Name"; public string _TESTSTR { get { return _STR; } set { _STR = value; } } public string _FUNCTION(int _X, int _Y) { return (_X * _Y).ToString(); } public void _PROCEDURE(int _X, int _Y) { _Y *= _X; } } class Program { static void Main(string[] args) { Console.Clear(); _TEST _TESTER = new _TEST(); string _STRING; _STRING = Versioned.CallByName(_TESTER, "_TESTSTR", CallType.Get).ToString(); Console.WriteLine("Get _TESTSTR in _TEST : {0}",_STRING); Versioned.CallByName(_TESTER, "_TESTSTR", CallType.Set, "Changed By The CallByName"); _STRING = Versioned.CallByName(_TESTER, "_TESTSTR", CallType.Get).ToString(); Console.WriteLine("Set _TESTSTR in _TEST : {0}",_STRING); _STRING = (String)Versioned.CallByName(_TESTER, "_FUNCTION",CallType.Method, 2, 3); Console.WriteLine("Use _FUNCTION function in _TEST : {0}*{1}={2}",2,3,_STRING); int _A = 3, _B = 3; Versioned.CallByName(_TESTER, "_PROCEDURE", CallType.Method, _A, _B); Console.WriteLine("Use _PROCEDURE sub in _TEST {1}={0}*{1}",3,3,_A.ToString()); Console.ReadLine(); } } }