Tag: c#

Java – 在类中添加支持以允许乘法

在有Vector2 / Vector3等(我在程序中使用C#编码)的Unity3D等程序中,只需使用'*'操作数就可以将Unity的Vector对象乘以浮点数,而不需要明确的方法。 例如: Vector2 oldVector = new Vector2(10f, 10f); Vector2 newVector = oldVector * -2f 然后newVector将有值(-20f,-20f)。 与使用如下方法的东西相反: Vector2 oldVector = new Vector2(10f, 10f); Vector2 newVector = oldVector.multiply(-2f); 基本上你会如何告诉Java来处理这个/将它实现到你的课堂? 有什么方法吗? 我意识到这可能会令人费解,而且只是使用方法可能会容易得多,但是我觉得在后期阶段学习或许会有用。

C#关闭是否支持非本地回报?

这里解释一下这个问题是一些Scala代码: object Scratch { def foo: Int = { val list = List(1, 2, 3, 4) list.foreach { each => if(each > 2) { return each } println(each) } return 5 } def main(args : Array[String]) : Unit = { val i = foo println("i: " + i) } 上面的代码打印到控制台: 1 2 我:3 特别要注意的是, list.foreach使用的闭包有一个return语句,而这个return语句导致foo […]

SemanticModel.GetSymbolInfo(typeSyntax)返回null

我在解决Roslyn中的某些类型时遇到问题。 大多数时候它按预期工作但在某些情况下,在某些文件中,某些类型无法解决。 这是我用来处理类型的代码: private string GetTypeName(TypeSyntax type) { var si = _model.GetSymbolInfo(type); var s = si.Symbol; if (s == null) { var ti = _model.GetTypeInfo(type); if (ti.Type?.Kind == SymbolKind.ErrorType) { return "**error type**"; } return "**unknown type**"; } return GetTypeNameFromSymbol(s as ITypeSymbol); } 我从各种不同的表达式和声明中传递一个TypeSyntax。 它似乎是每个文件和每个类型的失败。 在某些文档中,它不能将Task解析为类型,而在某些文档中,它不能解析不同的异常类型。 我无法创建一个再现这一点的小例子。 我在C#中使用上面的代码给Kotlin编译器: https : //github.com/rogeralsing/ProjectExodus 在某些情况下,我最终在“ 错误类型 ”分支。 而在一些“ […]

发现多个文件与操作系统无关的路径“lib / x86 / libusb.so”

我在我的android应用程序中使用libusb 。 当我试图建立libusb本地库,然后我得到下面的错误消息,生成* .so文件。 错误:任务':app:transformNativeLibsWithMergeJniLibsForDebug'的执行失败。 发现多个文件与操作系统无关的路径“lib / x86 / libusb.so” 的build.gradle import org.apache.tools.ant.taskdefs.condition.Os apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 26 buildToolsVersion "26.0.0" defaultConfig { applicationId "com.williams.libusbpoc" minSdkVersion 21 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } externalNativeBuild […]

Select和SelectMany之间的区别

我一直在搜索Select和SelectMany之间的区别,但我一直没能找到合适的答案。 我需要学习使用LINQ To SQL时的差异,但是我发现所有的都是标准的数组示例。 有人可以提供一个LINQ to SQL的例子吗?

不能完全得到欧拉问题#2的问题

我试图通过一些项目欧拉问题来学习C ++的基础知识。 我已经做到了#2。 Fibonacci序列中的每个新项都是通过添加前两个项来生成的。 从1和2开始,前10项将是: 1,2,3,5,8,13,21,34,55,89,… 求出序列中所有不超过四百万的偶数项的和。 我的逻辑: 0, 1, 1, 2, 3, 5 xyz xyz xyz xyz 以上是循环这个: x + y = z x = y y = z 我的代码: #include <iostream.h> using namespace std; int main() { int x = 0; int y = 1; int z; int sum; for(y = 1; y […]

从C#分析到Roslyn的Java分析

我的问题纯粹是理论上的,如果是肯定的答案,我想稍后再实施。 是否可以使用Roslyn创建代码分析并将其存储在dll中,然后在基于JVM的项目中使用该dll的内容? 我知道Visual C#和Java语言有一些相似之处。 但是现在只能分析C#和VB(我认为F#暂时搁置了),当它具有确切的功能(比如循环)时,它是否可以将从C#到Java的代码分析应用到Java中。 从这个职位 ,我得到的DLL可以调用使用Java。 我会很高兴知道,当我使用VB或C#时,通过语法树,它可以做Java,甚至更类似于C#的Kotlin相同。

可视范围项目/模块

我有两个在Android Studio中链接的项目/模块。 其中一个作为一个Api /核心,我需要某些类只能从这个模块访问,但从所有的包(所以“默认”在这种情况下是无用的)访问。 但似乎在Java中它不是像内部(C#,SWIFT)的修饰符。 “模块”修改器是为Java 7提出的,但没有实现。 那么,是否有任何方法可以保护模块的类别不受外界影响,而不会将其范围限制在当前的包中? 谢谢!

是否有可能有C#异步方法返回类型是不是任务<T>或无效?

看来任何实现GetAwaiter需求的对象都可以等待, Task<>类型只是满足这个需求的许多可能的类型之一。 然而,就我所知,一个async方法似乎只能返回Task<>或void 。 是否有可能连接我的自定义任务一样的等待类型,所以我可以指定我的自定义类型作为异步返回类型,当然,我可以随后链接通常调用链的await 。 像这样的东西:(伪代码) async MyAwaitable MyAwaitableMethod() { await myAwaitable; } async Task MyTask() { await MyAwaitableMethod(); } 背景信息 :整个想法实际上源于C ++ 1z / 2x协程提案,它基本上具有相同的基本模型,但是允许在定义任何具有嵌入的promise_type类型中进行更多的控制,从协程返回(作为co_await后果)。 [编辑] 除了答案中提供的链接之外,我还在以下链接中找到了更多的信息,这似乎确实引起了一些关于此主题的热烈讨论: https://github.com/dotnet/roslyn/issues/7169 https://github.com/dotnet/roslyn/issues/10902 https://github.com/ljw1004/roslyn/blob/features/async-return/docs/specs/feature%20-%20arbitrary%20async%20returns%20-%20discussion.md [EDIT2] 令人惊讶的是,经过一些进一步挖掘,这实际上是C#7.0的一个预期功能: http : //intellitect.com/generalized-async-return-types/

使用通用接口或类的约束

假设我们写一个测试系统。 测试包含任务列表,每个任务包含问题和答案列表。 我们也假定问题或答案不仅可以是文本,而是可以是例如图像。 所以我们使用泛型: public interface IQuestion<T> { T Content { get; } } public interface IAnswer<T> { T Content { get; } bool IsCorrect { get; } } 而当我们创建任务时,就会出现问题: interface ITask<TQuestion, TAnswer> { TQuestion Question { get; } List<TAnswer> Answers { get; } } 如何写TQuestion应该是IQuestion和TAnswer子类型 – IAnswer子类型? 我试过了: interface ITask<TQuestion, TAnswer> where TQuestion : […]