using system.collections.generic
时间: 2023-04-21 08:05:45 浏览: 235
using system.collections.generic是一个命名空间,它包含了许多泛型集合类,如List、Dictionary、Queue、Stack等。这些集合类可以存储不同类型的对象,并提供了一些常用的操作方法,如添加、删除、查找等。使用这些泛型集合类可以提高代码的可读性和可维护性,同时也可以提高程序的性能。
相关问题
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using csLTDMC;
这段代码是C#中的一段程序代码。它包含了一些命名空间的引用,例如System、System.Collections.Generic、System.ComponentModel、System.Data、System.Drawing、System.Linq、System.Text、System.Threading.Tasks和System.Windows.Forms。这些命名空间中包含了很多类和方法,可以使我们更加方便地编写C#程序。
此外,这段代码还使用了一个名为 csLTDMC 的命名空间,它很可能是一个自定义的命名空间,其中包含了与运动控制卡相关的代码。在这个命名空间中,可能定义了一些类和方法,用于控制运动控制卡的运动、输入输出等功能。
区块链日记程序 一、题目要求 采用c sharp编程 需要using以下库 using System; using System.Collections.Generic; using BsvSimpleLibrary; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using NBitcoin; using NBitcoin.DataEncoders; using BitcoinSVCryptor; 程序可以输入日记内容 需要将日记内容进行加密 能够将加密数据写入区块链 能够读取链上加密数据 读取的加密数据进行解密 解密后在程序中显示
二、程序设计思路
1. 界面设计
使用Windows窗体应用程序,设计一个简单的界面,包括输入框、加密按钮、写入区块链按钮、读取区块链按钮、解密按钮和显示框等控件。
2. 数据加密
使用BsvSimpleLibrary库中的加密函数,将输入的日记内容进行加密。加密后的数据将被写入区块链。
3. 区块链操作
使用NBitcoin库中的Bitcoin接口,连接到比特币网络,实现写入区块链和读取区块链的功能。
4. 数据解密
使用BsvSimpleLibrary库中的解密函数,将读取的加密数据进行解密。解密后的数据将在程序中显示出来。
三、程序代码实现
以下是程序的核心代码:
```
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using NBitcoin;
using NBitcoin.DataEncoders;
using BitcoinSVCryptor;
using BsvSimpleLibrary;
namespace BlockChainDiary
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// 连接到比特币网络
public Network network = Network.TestNet;
public BitcoinSecret bitcoinSecret = new BitcoinSecret("私钥", network);
public BitcoinPubKeyAddress bitcoinPubKeyAddress = bitcoinSecret.PubKey.GetAddress(network);
// 加密、写入区块链
private void btnWrite_Click(object sender, EventArgs e)
{
// 加密数据
string diaryContent = txtContent.Text.Trim();
string encryptedData = Cryptor.Encrypt(diaryContent, "密码");
// 写入区块链
var transaction = new Transaction();
transaction.Outputs.Add(new TxOut()
{
Value = Money.Zero,
ScriptPubKey = bitcoinPubKeyAddress.ScriptPubKey
});
transaction.Inputs.Add(new TxIn()
{
PrevOut = new OutPoint(uint256.Zero, uint.MaxValue)
});
transaction.Sign(bitcoinSecret, false);
transaction.Outputs[0].ScriptPubKey = new Script(Encoders.Hex.DecodeData(encryptedData));
var broadcastResponse = network.Broadcast(transaction);
if (broadcastResponse.Success)
{
MessageBox.Show("写入区块链成功!");
}
else
{
MessageBox.Show("写入区块链失败!");
}
}
// 读取区块链、解密
private void btnRead_Click(object sender, EventArgs e)
{
// 读取区块链
var address = bitcoinPubKeyAddress;
var client = new QBitNinjaClient(network);
var balanceModel = client.GetBalance(BitcoinAddress.Create(address.ToString(), network)).Result;
var unspentCoins = balanceModel.Operations.SelectMany(i => i.ReceivedCoins).Where(i => i.TxOut.ScriptPubKey == address.ScriptPubKey).ToList();
var transactionId = unspentCoins.First().Outpoint.Hash;
var transactionResponse = client.GetTransaction(transactionId).Result;
var transaction = transactionResponse.Transaction;
var hex = transaction.Outputs.First().ScriptPubKey.ToHex();
// 解密数据
string decryptedData = Cryptor.Decrypt(hex, "密码");
txtContent.Text = decryptedData;
}
}
}
```
四、程序运行效果
程序界面如下所示:
![程序界面](https://img-blog.csdnimg.cn/20220107145242937.png)
输入日记内容,点击加密按钮,将数据加密后写入区块链:
![加密成功](https://img-blog.csdnimg.cn/20220107145526256.png)
点击读取按钮,将数据从区块链中读取出来并解密:
![解密成功](https://img-blog.csdnimg.cn/20220107145657900.png)
解密后的数据将在程序中显示出来。
阅读全文