首先添加参考Microsoft.VisualBasic
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();
}
}
}
-------------------------------------------------- ------------------
Başak&GökhanTarhan
软件开发专家
From: https://bytes.com/topic/net/insights/741354-use-callbyname-c