使用:使用Vlc.DotNet为
使用32位VLC版本2.2.6的
任何CPU构建
Visual Studio 2017
NET框架3.5
(因为我认为它是唯一一个可以在任何NET框架上工作的...)
我创建了新的表单只是为了测试,这个库如何工作(或者如果有效)
使用“VlcControl”的拖放方法和一个按钮
所有代码如下:
表单.cs:
using System;
using System.IO;
using System.Windows.Forms;
namespace WindowsFormsApp2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog
{
Filter = "( *.mp4) | *.mp4"
};
if (ofd.ShowDialog() == DialogResult.OK)
{
vlcControl1.SetMedia(new FileInfo(Path.GetFileName(ofd.FileName)));
vlcControl1.Play();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
Form.Designer.cs(生成)
namespace WindowsFormsApp2
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// …Run Code Online (Sandbox Code Playgroud) 这两者之间的主要区别是什么?
例如,在创建自定义类(处理线程应该执行的操作)时,我有两个选项:
class ThreadHandler : Runnable {
private val thread = Thread(this)
override fun run() {}
}
Run Code Online (Sandbox Code Playgroud)
和
class ThreadHandler : () -> Unit {
private val thread = Thread(this)
override fun invoke() {}
}
Run Code Online (Sandbox Code Playgroud)
我要求:
给定简单的函数:
function pullEvent()
return "eventName", "eventArg1", "eventArg2", "eventArg3", "eventArg4"
end
Run Code Online (Sandbox Code Playgroud)
其中返回值的数量取决于第一个返回值,如何将第一个返回值捕获到一个变量中并将所有剩余值捕获到列表中?
我可以想象这样的事情:
local eventName, { eventArgs } = pullEvent()
Run Code Online (Sandbox Code Playgroud)
但这是无效的语法。
我现在这样做的方式是:
local event = { pullEvent() }
local eventName, eventArgs = event[1], { table.unpack(event, 2) }
Run Code Online (Sandbox Code Playgroud)
这是可行的,但我想问是否有更短的方法。最好不创建event变量。