c# 委托 -> 打字稿
c# delegate -> typescript
c#代码
enum myEnum
{
aa = 0,
bb,
cc,
}
public delegate void MyDelegate(myEnum _myEnum, params object[] _params);
public Dectionary<myEnum , MyDelegate> dicMyDelegate = new Dectionary<myEnum , MyDelegate>();
public void GameDelegate(myEnum _myEnum, MyDelegate _Func)
{
if(dicMyDelegate .ContainsKey(_myEnum))
{
MyDelegate Func;
dicMyDelegate.TryGetValue(_myEnum, out Func);
Func += _Func;
}
else
{
dicMyDelegate.Add(_myEnum, _Func);
}
}
public void GameCallBack(myEnum _myEnum)
{
if(!dicMyDelegate.ContainsKey(_myEnum)) return;
MyDelegate Func;
dicMyDelegate.TryGetValue(_myEnum, out Funk);
if(Func == null) return;
Func(_myEnum);
}
============================================= =====
cocos 创建 TypeScript。我不知道....请。我正在学习
public delegate void MyDelegate(myEnum _myEnum, params object[] _params);
public Dectionary<myEnum , MyDelegate> dicMyDelegate = new Dectionary<myEnum , MyDelegate>();
很难用类型脚本替换上面的代码。
我整天都在网上搜索
declare module "Delegate"
{
export function MyDelegate(_myEnum: myEnum , args: any[]) : void;
}
import {MyDelegate} from 'Delegate';
在 JavaScript 和 TypeScript 中,函数首先是 class 公民,因此您不需要像在 C# 中那样解决问题。
function example(name: string) : string {
return 'Hello ' + name;
}
function acceptsFunction(func: Function) {
// Calling the function that was passed as an argument
const result = func('Steve');
console.log(result);
}
// Calling a function, passing another function as an argument
acceptsFunction(example);
在上面的示例中,您可以将函数作为参数传递,并使用参数调用它 - 所有这些都没有额外的复杂性。
您可以通过指定必须传递的 种类 函数来提高类型安全性:
function acceptsFunction(func: (name: string) => string) {
c#代码
enum myEnum
{
aa = 0,
bb,
cc,
}
public delegate void MyDelegate(myEnum _myEnum, params object[] _params);
public Dectionary<myEnum , MyDelegate> dicMyDelegate = new Dectionary<myEnum , MyDelegate>();
public void GameDelegate(myEnum _myEnum, MyDelegate _Func)
{
if(dicMyDelegate .ContainsKey(_myEnum))
{
MyDelegate Func;
dicMyDelegate.TryGetValue(_myEnum, out Func);
Func += _Func;
}
else
{
dicMyDelegate.Add(_myEnum, _Func);
}
}
public void GameCallBack(myEnum _myEnum)
{
if(!dicMyDelegate.ContainsKey(_myEnum)) return;
MyDelegate Func;
dicMyDelegate.TryGetValue(_myEnum, out Funk);
if(Func == null) return;
Func(_myEnum);
}
============================================= =====
cocos 创建 TypeScript。我不知道....请。我正在学习
public delegate void MyDelegate(myEnum _myEnum, params object[] _params);
public Dectionary<myEnum , MyDelegate> dicMyDelegate = new Dectionary<myEnum , MyDelegate>();
很难用类型脚本替换上面的代码。
我整天都在网上搜索
declare module "Delegate"
{
export function MyDelegate(_myEnum: myEnum , args: any[]) : void;
}
import {MyDelegate} from 'Delegate';
在 JavaScript 和 TypeScript 中,函数首先是 class 公民,因此您不需要像在 C# 中那样解决问题。
function example(name: string) : string {
return 'Hello ' + name;
}
function acceptsFunction(func: Function) {
// Calling the function that was passed as an argument
const result = func('Steve');
console.log(result);
}
// Calling a function, passing another function as an argument
acceptsFunction(example);
在上面的示例中,您可以将函数作为参数传递,并使用参数调用它 - 所有这些都没有额外的复杂性。
您可以通过指定必须传递的 种类 函数来提高类型安全性:
function acceptsFunction(func: (name: string) => string) {