TLDR:
是否有一个Java等价的C#委托,它允许我排队各种类的方法并动态地将它们添加到队列中?语言构造而不是代码.
语境:
我以前使用过Unity 3D,我喜欢Update脚本方法之类的东西.只是声明该方法将其添加到每帧执行的方法列表中.我想在我的LWJGL游戏中创建类似的东西.为此,我想使用委托(或类似的东西).是否有任何Java语言结构允许我这样做?我更喜欢包含两个或更多的答案(以便我可以选择哪个是我的代码最优化的)构造和使用它们的方法.我不想要代码,我只想知道从哪里开始.编程中最有趣的部分是解决问题,我不想被剥夺.此外,我不想被告知如何做到这一点.我希望被引导朝着正确的方向,而不是朝着那个方向被抛到那个目的地.我该怎么学?:-)
我完全不了解如何在我的代码中使用TryCast,但我需要使用它来验证用户输入.我已经做了各种搜索,并在这里查看了各种问题,但似乎没有人真正说明如何使用它,MSDN网站似乎根本没有帮助.
Function ValidateInput(Var_In As String) As Integer
If TryCast(Var_In, Integer) = Nothing Then
Return vbNull
Else
Return Var_In
End If
End Function
Run Code Online (Sandbox Code Playgroud)
错误说明了
操作数必须是引用类型,但Integer是值类型
我做错了什么的解释是什么?
TryParse不接受超过10位数字,例如,输入"12345678901"将不被接受.我该如何解决?
我正在使用eclipse做一些LWJGL编程,当我创建用于保存顶点的数组时,我倾向于使用大量的空格来显示哪些浮点数包含顶点.
//Array for holding the vertices of a hexagon
float [ ] Vertices = {
// Vertex 0
-0.5f , 1.0f , 0.0f ,
// Vertex 1
-1.0f , 0.0f , 0.0f ,
// Vertex 2
-0.5f , -1.0f , 0.0f ,
// Vertex 3
0.5f , -1.0f , 0.0f ,
// Vertex 4
1.0f , 0.0f , 0.0f ,
// Vertex 5
0.5f , 1.0f , 0.0f ,
// Center Vertex ( 6 )
0.0f , 0.0f , 0.0f …Run Code Online (Sandbox Code Playgroud) 我试图使我的代码更具可读性,因此使用以下(或等效的)是有用的
do
{
...
}
until(Display.isCloseRequested())
Run Code Online (Sandbox Code Playgroud)
而不是
do
{
...
}
while(!Display.isCloseRequested())
Run Code Online (Sandbox Code Playgroud)
但我似乎找不到这样的东西.
是的,我不喜欢将'开头大括号放在与语句相同的行上的'java约定'和与结束大括号在同一行上的最终语句.我更喜欢代码风格.
Visual Studio中突出显示了以下代码片段以及简化它的建议.
if ( drawMethodsDelegate != null )
drawMethodsDelegate ( e.Graphics );
Run Code Online (Sandbox Code Playgroud)
当我点击灯泡建议时,Visual Studio将其重构为以下内容
drawMethodsDelegate?.Invoke ( e.Graphics );
Run Code Online (Sandbox Code Playgroud)
和不.问号不是拼写错误.我不明白问号用于什么,我在MSDN上找不到任何相关的东西.我还查看了Tutorial Point Delegates页面,但没有找到有用的信息.
我希望能够创建VB(.net)中的运算符,如下所示
Console.WriteLine ( 16 Mod 2 )
Run Code Online (Sandbox Code Playgroud)
产生如下所示的输出
0
Run Code Online (Sandbox Code Playgroud)
如您所见,这使代码更容易阅读.我将如何制作这样做的功能?
我尝试了以下格式
equal :: Integer -> Integer -> bool
x `equal` y = x == y
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
*Main> 5 equal 5
<interactive>:1:1: error:
* Non type-variable argument
in the constraint: Num ((Integer -> Integer -> Bool) -> t -> t1)
(Use FlexibleContexts to permit this)
* When checking the inferred type
it :: forall t t1.
(Num ((Integer -> Integer -> Bool) -> t -> t1), Num t) =>
t1
*Main> …Run Code Online (Sandbox Code Playgroud)