我很惊讶(也很害怕)以下代码可以在 Vb.Net 中运行
Dim test2DArr As String(,) = {{"A", "B"}, {"C", "D"}}
For Each s As String In test2DArr
MsgBox(s)
Next
Run Code Online (Sandbox Code Playgroud)
运行时,会弹出四个消息框,显示“A”、“B”、“C”和“D”。
换句话说,它的行为与以下完全相同:
Dim test1DArr As String() = {"A", "B", "C", "D"}
For Each s As String In test1DArr
MsgBox(s)
Next
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下这个“功能”吗?我需要在这里强加一些显然不受支持的结构。上面的第一个代码示例应该是:
Dim test2DArr As String(,) = {{"A", "B"}, {"C", "D"}}
For Each arr As String(,) In test2DArr
MsgBox(arr(0) & ", " & arr(1))
Next
Run Code Online (Sandbox Code Playgroud)
并应生成两个消息框:“A,B”和“C,D”,但编译器坚持认为迭代二维数组会生成字符串序列,而不是字符串数组序列。
是我做错了什么还是.Net 的二维数组实现真的那么脆弱?
我一直在寻找一种方法来调用类的构造函数,该构造函数类似于“parent::_ construct”,但对于类本身(类似于“self:: _construct”,尽管这不起作用)。为什么要这样做?考虑以下(这不起作用,顺便说一句)...
class A {
var $name;
function __construct($name) {
$this->name = $name;
}
function getClone($name) {
$newObj = self::__construct($name);
return $newObj;
}
}
class B extends A {
}
Run Code Online (Sandbox Code Playgroud)
在实际实现中,还有其他属性可以区分 B 类和 A 类,但两者都应该有“getClone”方法。如果在类 A 的对象上调用它应该产生类 A 的另一个对象,如果在类 B 上调用它应该产生类 B 的另一个对象。
当然,我可以通过覆盖 B 类中的“getClone”并将类名硬编码到方法中来做到这一点(即,$newObj = new B($name)),但只对方法进行编码会好得多一次,告诉它实例化它自己的类的一个对象,不管那个类是什么。
PHP 会让我这样做吗?
我试图找出如何在VB.Net中加密/解密字符串.
我按照这里给出的例子编写了下面的代码(如下).有一个文本框,一个"加密"按钮和一个"解密"按钮.想法是在文本框中键入内容("喜欢'hello world'"),单击"加密",然后在文本框中看到加密版本.单击"解密"应该会将您带回原始字符串.
但是当我尝试加密时,当我尝试"FlushFinalBlock"时出现错误.错误是:"要加密的数据长度无效".
"解密"部分是黑暗中的总镜头,因为上面引用的示例仅涉及加密,而不是解密.我确定这是错的,但由于我无法"加密"工作,我还没有测试过.
谁能告诉我为什么这不起作用?
Imports System.Data.SqlClient
Imports System.IO
Imports System.Security.Cryptography
Public Class Form1
Private cryptObj As RijndaelManaged
Private KEY_128 As Byte() = {42, 1, 52, 67, 231, 13, 94, 101, 123, 6, 0, 12, 32, 91, 4, 111, 31, 70, 21, 141, 123, 142, 234, 82, 95, 129, 187, 162, 12, 55, 98, 23}
Private IV_128 As Byte() = {234, 12, 52, 44, 214, 222, 200, 109, 2, 98, 45, 76, 88, 53, 23, 78}
Private …Run Code Online (Sandbox Code Playgroud) 构建响应Ajax请求的PHP脚本非常简单:
<?php
$command = $_POST["command"];
if ($command == "say_hello") {
$name = $_POST["name"];
echo json_encode(array("message" => "Hello, " . $name));
}
?>
Run Code Online (Sandbox Code Playgroud)
并且,至少如果您在客户端使用jQuery,并且如果您在原始请求上指定了回调函数,则包含该消息的数组将被传递到该回调函数中.
但是使用Python并不是那么简单.或者至少我还没弄明白如何让它如此简单.如果我只是尝试"打印"一个响应(与上面的PHP的"echo"语句并行),客户端就不会得到任何回复.
每当我在互联网上查看如何使用Python响应Ajax请求时,答案总是涉及使用Django或其他一些Web框架.
而且我知道那些东西很棒,但是PHP做了什么使得使用类似的包不必要?我想用Python而不是PHP编写我的服务器端脚本,但我更喜欢使用DIY方法来使用第三方框架(对吧?)这是一个非常简单的任务.
有帮助吗?如何做到这一点的一个例子将非常感激.
php ×2
.net ×1
ajax ×1
arrays ×1
class ×1
constructor ×1
cryptostream ×1
encryption ×1
extends ×1
iteration ×1
methods ×1
python ×1
vb.net ×1