- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好吧,我对这两种语言都不是很流利,所以如果这是一个简单的问题,请原谅我。我正在尝试将一些示例代码从 C# 转置到 VB.net,因为我更熟悉 VB.Net,并且希望将其实现到现有项目中。我有一个简单的类和一个简单的表格。我在 events.required 的继承行中遇到错误,并且不知道如何解决。
C# 效果很好我的类 C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.handpoint.api;
namespace WindowsGettingStartedApp
{
class MyClass : Events.Required
{
Hapi api;
Device device;
private Form1 UIClass;
public MyClass(Form1 form1)
{
InitApi();
UIClass = form1;
}
public void InitApi()
{
string sharedSecret = "0102030405060708091011121314151617181920212223242526272829303132";
api = HapiFactory.GetAsyncInterface(this).DefaultSharedSecret(sharedSecret);
// The api is now initialized, and we've set a default shared secret
// The shared secret is a unique string shared between the card reader and your mobile application.
// It prevents other people from connecting to your card reader.
// You should replace this default shared secret by the one sent by our support team.
}
public void DiscoverDevices()
{
api.ListDevices(ConnectionMethod.BLUETOOTH);
// This triggers the search for all the bluetooth devices around.
// You can also search for USB and Serial as a connection method
}
public void DeviceDiscoveryFinished(List<Device> devices)
{
foreach (Device device in devices)
{
if (device.Name != null)
{
if (device.Name.Equals("PP0513901435"))
// Put the name of your device, find it by pressing C then up arrow on your card reader keypad
{
this.device = device;
// We'll remember the device for this session, and you should too
api.UseDevice(this.device);
// Connection to the device is handled automatically in the API
}
}
}
}
// You can also connect directly to a specific device without having to discover the other devices around :
public void DirectConnect()
{
Device device = new Device("PP0513901435", "68:AA:D2:00:D5:27", "", ConnectionMethod.BLUETOOTH);
// The MAC Adress always has to be written in UPPER CASE
// new Device("name", "address", "port", ConnectionMethod);
api.UseDevice(device);
}
public bool Pay()
{
return api.Sale(new BigInteger("1000"), Currency.GBP);
// Let´s start our first payment of 10 pounds
}
public void SignatureRequired(SignatureRequest signatureRequest, Device device)
{
// You'll be notified here if a sale process needs a signature verification
// A signature verification is needed if the cardholder uses an MSR or a chip & signature card
// This method will not be invoked if a transaction is made with a Chip & PIN card
api.SignatureResult(true); // This line means that the cardholder ALWAYS accepts to sign the receipt.
// A specific line will be displayed on the merchant receipt for the cardholder to be able to sign it
}
public void EndOfTransaction(TransactionResult transactionResult, Device device)
{
UIClass.DisplayReceipts(transactionResult.MerchantReceipt, transactionResult.CustomerReceipt);
}
public void Disconnect()
{
api.Disconnect();
}
}
}
C# 非常适合 Form1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsGettingStartedApp
{
public partial class Form1 : Form
{
MyClass my;
public Form1()
{
InitializeComponent();
my = new MyClass(this);
}
private void PayButton_Click(object sender, EventArgs e)
{
my.Pay();
}
private void ConnectButton_Click(object sender, EventArgs e)
{
my.DiscoverDevices();
// my.DirectConnect();
}
private void DisconnectButton_Click(object sender, EventArgs e)
{
my.Disconnect();
}
public delegate void UpdateReceiptsCallback(string MerchantReceipt, string CustomerReceipt);
public void DisplayReceipts(string MerchantReceipt, string CustomerReceipt)
{
// Only need to check for one of the webBrowsers
if (MerchantReceiptBrowser.InvokeRequired)
{
UpdateReceiptsCallback d = new UpdateReceiptsCallback(DisplayReceipts);
this.Invoke(d, new object[] { MerchantReceipt, CustomerReceipt });
}
else
{
MerchantReceiptBrowser.DocumentText = MerchantReceipt;
CardholderReceiptBrowser.DocumentText = CustomerReceipt;
}
}
}
}
我的 VB.Net MyClass 转换
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports com.handpoint.api
Namespace WindowsGettingStartedApp
Class [MyClass]
Inherits Events.Required
上面的行出现错误:类只能从其他类继承
Private api As Hapi
Private device As Device
Private UIClass As Form1
Public Sub New(form1 As Form1)
InitApi()
UIClass = form1
End Sub
Public Sub InitApi()
Dim sharedSecret As String = "0102030405060708091011121314151617181920212223242526272829303132"
api = HapiFactory.GetAsyncInterface(Me).DefaultSharedSecret(sharedSecret)
' The api is now initialized, and we've set a default shared secret
' The shared secret is a unique string shared between the card reader and your mobile application.
' It prevents other people from connecting to your card reader.
' You should replace this default shared secret by the one sent by our support team.
End Sub
Public Sub DiscoverDevices()
api.ListDevices(ConnectionMethod.BLUETOOTH)
' This triggers the search for all the bluetooth devices around.
' You can also search for USB and Serial as a connection method
End Sub
Public Sub DeviceDiscoveryFinished(devices As List(Of Device))
For Each device As Device In devices
If device.Name IsNot Nothing Then
If device.Name.Equals("PP0513901435") Then
' Put the name of your device, find it by pressing C then up arrow on your card reader keypad
Me.device = device
' We'll remember the device for this session, and you should too
' Connection to the device is handled automatically in the API
api.UseDevice(Me.device)
End If
End If
Next
End Sub
' You can also connect directly to a specific device without having to discover the other devices around :
Public Sub DirectConnect()
Dim device As New Device("PP0513901435", "68:AA:D2:00:D5:27", "", ConnectionMethod.BLUETOOTH)
' The MAC Adress always has to be written in UPPER CASE
' new Device("name", "address", "port", ConnectionMethod);
api.UseDevice(device)
End Sub
Public Function Pay() As Boolean
Return api.Sale(New BigInteger("1000"), Currency.GBP)
' Let´s start our first payment of 10 pounds
End Function
Public Sub SignatureRequired(signatureRequest As SignatureRequest, device As Device)
' You'll be notified here if a sale process needs a signature verification
' A signature verification is needed if the cardholder uses an MSR or a chip & signature card
' This method will not be invoked if a transaction is made with a Chip & PIN card
api.SignatureResult(True)
' This line means that the cardholder ALWAYS accepts to sign the receipt.
' A specific line will be displayed on the merchant receipt for the cardholder to be able to sign it
End Sub
Public Sub EndOfTransaction(transactionResult As TransactionResult, device As Device)
UIClass.DisplayReceipts(transactionResult.MerchantReceipt, transactionResult.CustomerReceipt)
End Sub
Public Sub Disconnect()
api.Disconnect()
End Sub
End Class
End Namespace
我的 VB.Net Form1
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Linq
Imports System.Text
Imports System.Windows.Forms
Namespace WindowsGettingStartedApp
Public Partial Class Form1
Inherits Form
Private my As [MyClass]
Public Sub New()
InitializeComponent()
上面的行给我错误“InitializeComponent”未声明。由于其保护级别,它可能无法访问。在引用表单上的对象时,我也遇到了上述错误。
my = New [MyClass](Me)
End Sub
Private Sub PayButton_Click(sender As Object, e As EventArgs)
my.Pay()
End Sub
Private Sub ConnectButton_Click(sender As Object, e As EventArgs)
my.DiscoverDevices()
' my.DirectConnect();
End Sub
Private Sub DisconnectButton_Click(sender As Object, e As EventArgs)
my.Disconnect()
End Sub
Public Delegate Sub UpdateReceiptsCallback(MerchantReceipt As String, CustomerReceipt As String)
Public Sub DisplayReceipts(MerchantReceipt As String, CustomerReceipt As String)
' Only need to check for one of the webBrowsers
If MerchantReceiptBrowser.InvokeRequired Then
Dim d As New UpdateReceiptsCallback(AddressOf DisplayReceipts)
Me.Invoke(d, New Object() {MerchantReceipt, CustomerReceipt})
Else
MerchantReceiptBrowser.DocumentText = MerchantReceipt
CardholderReceiptBrowser.DocumentText = CustomerReceipt
End If
End Sub
End Class
End Namespace
我的Form1.Designer.vb
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Form1
Inherits System.Windows.Forms.Form
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
components = New System.ComponentModel.Container
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.Text = "Form1"
End Sub
End Class
任何见解都会很棒。我确信我错过了一些简单的东西,但我又是一个新手。我将出现错误的地方加粗了。感谢您的帮助。
最佳答案
第一个错误是因为 Events.Required
是一个接口(interface),所以它应该读取
Implements Events.Required
而不是
Inherits Events.Required
第二个错误是因为 InitializeComponent
是在表单设计器文件中声明的,您可能没有在应用程序中包含/翻译该文件。如果您想检查它应该是什么样子,请向您的项目添加一个新表单。
关于C# 到 VB.Net 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39401358/
关闭。这个问题是off-topic .它目前不接受答案。 想要改进这个问题? Update the question所以它是on-topic用于堆栈溢出。 关闭 12 年前。 Improve thi
我有一个动态网格,其中的数据功能需要正常工作,这样我才能逐步复制网格中的数据。假设在第 5 行中,我输入 10,则从第 6 行开始的后续行应从 11 开始读取,依此类推。 如果我转到空白的第一行并输入
我有一个关于我的按钮消失的问题 我已经把一个图像作为我的按钮 用这个函数动画 function example_animate(px) { $('#cont
我有一个具有 Facebook 连接和经典用户名/密码登录的网站。目前,如果用户单击 facebook_connect 按钮,系统即可运行。但是,我想将现有帐户链接到 facebook,因为用户可以选
我有一个正在为 iOS 开发的应用程序,该应用程序执行以下操作 加载和设置注释并启动核心定位和缩放到位置。 map 上有很多注释,从数据加载不会花很长时间,但将它们实际渲染到 map 上需要一段时间。
我被推荐使用 Heroku for Ruby on Rails 托管,到目前为止,我认为我真的会喜欢它。只是想知道是否有人可以帮助我找出问题所在。 我按照那里的说明在该网站上创建应用程序,创建并提交
我看过很多关于 SSL 错误的帖子和信息,我自己也偶然发现了一个。 我正在尝试使用 GlobalSign CA BE 证书通过 Android WebView 访问网页,但出现了不可信错误。 对于大多
我想开始使用 OpenGL 3+ 和 4,但我在使用 Glew 时遇到了问题。我试图将 glew32.lib 包含在附加依赖项中,并且我已将库和 .dll 移动到主文件夹中,因此不应该有任何路径问题。
我已经盯着这两个下载页面的源代码看了一段时间,但我似乎找不到问题。 我有两个下载页面,一个 javascript 可以工作,一个没有。 工作:http://justupload.it/v/lfd7不是
我一直在使用 jQuery,只是尝试在单击链接时替换文本字段以及隐藏/显示内容项。它似乎在 IE 中工作得很好,但我似乎无法让它在 FF 中工作。 我的 jQuery: $(function() {
我正在尝试为 NDK 编译套接字库,但出现以下两个错误: error: 'close' was not declared in this scope 和 error: 'min' is not a m
我正在使用 Selenium 浏览器自动化框架测试网站。在测试过程中,我切换到特定的框架,我们将其称为“frame_1”。后来,我在 Select 类中使用了 deselectAll() 方法。不久之
我正在尝试通过 Python 创建到 Heroku PostgreSQL 数据库的连接。我将 Windows10 与 Python 3.6.8 和 PostgreSQL 9.6 一起使用。 我从“ht
我有一个包含 2 列的数据框,我想根据两列之间的比较创建第三列。 所以逻辑是:第 1 列 val = 3,第 2 列 val = 4,因此新列值什么都没有 第 1 列 val = 3,第 2 列 va
我想知道如何调试 iphone 5 中的 css 问题。 我尝试使用 firelite 插件。但是从纵向旋转到横向时,火石占据了整个屏幕。 有没有其他方法可以调试 iphone 5 中的 css 问题
所以我有点难以理解为什么这不起作用。我正在尝试替换我正在处理的示例站点上的类别复选框。我试图让它做以下事情:未选中时以一种方式出现,悬停时以另一种方式出现(选中或未选中)选中时以第三种方式出现(而不是
Javascript CSS 问题: 我正在使用一个文本框来写入一个 div。我使用以下 javascript 获取文本框来执行此操作: function process_input(){
你好,我很难理解 P、NP 和多项式时间缩减的主题。我试过在网上搜索它并问过我的一些 friend ,但我没有得到任何好的答案。 我想问一个关于这个话题的一般性问题: 设 A,B 为 P 中的语言(或
你好,我一直在研究 https://leetcode.com/problems/2-keys-keyboard/并想到了这个动态规划问题。 您从空白页上的“A”开始,完成后得到一个数字 n,页面上应该
我正在使用 Cocoapods 和 KIF 在 Xcode 服务器上运行持续集成。我已经成功地为一个项目设置了它来报告每次提交。我现在正在使用第二个项目并收到错误: Bot Issue: warnin
我是一名优秀的程序员,十分优秀!