小编ntt*_*lor的帖子

在 VB.Net 中迭代二维数组

我很惊讶(也很害怕)以下代码可以在 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 的二维数组实现真的那么脆弱?

.net arrays iteration multidimensional-array

6
推荐指数
1
解决办法
3041
查看次数

从自己的方法调用 PHP 构造函数

我一直在寻找一种方法来调用类的构造函数,该构造函数类似于“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 会让我这样做吗?

php methods constructor extends class

6
推荐指数
1
解决办法
9529
查看次数

在VB.Net中进行简单的加密/解密

我试图找出如何在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)

vb.net encryption rijndaelmanaged cryptostream

5
推荐指数
2
解决办法
5万
查看次数

为什么PHP只适用于Ajax但Python不适用?

构建响应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 python ajax

4
推荐指数
1
解决办法
2489
查看次数