很难拿到一个好头衔,但我要说我有这种情况.我有一个基类:
public abstract class FooBase
{
}
Run Code Online (Sandbox Code Playgroud)
我有一个通用的实现:
public class MyFoo<T> : FooBase where T : Bar
{
}
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.抽象基础是这样我可以创建这些通用项的异构集合:
List<FooBase> list = new List<FooBase>()
{
new MyFoo<Bar1>(),
new MyFoo<Bar2>()
}
Run Code Online (Sandbox Code Playgroud)
现在问题来了.我有一个通用的方法:
public void DoSomething<T>(MyFoo<T> aFoo) where T : Bar
{
}
Run Code Online (Sandbox Code Playgroud)
当我使用特定 的实例调用它时,这可以工作Foo:
DoSomething(new MyFoo<Bar1>());
Run Code Online (Sandbox Code Playgroud)
但是我想要一个能够列出并调用DoSomething每个项目的函数:
public void DoSomethingWithList(List<FooBase> list)
{
foreach (var item in list)
{
DoSomething(item); // doesn't work - type cannot be inferred here
}
}
Run Code Online (Sandbox Code Playgroud)
那么有没有办法在运行时让它找出正确的类型并调用泛型函数?还是有其他方法摆脱这个难题?
在javascript中我们使用像这样的setInterval函数.
myInteval= setInterval("func",t);
Run Code Online (Sandbox Code Playgroud)
如果"func"本身的执行时间大于间隔时间t怎么办?
我认为js是单线程的.这是怎么实现的?
刚刚开始使用C#,这可能只是一个简单的修复,但我似乎无法看到它.一旦程序第一次执行(在添加两个数字之后),则提示用户输入是或否作为退出条件.当我输入'no'时,程序将再次循环.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BasicCalculator
{
class Program
{
static void Main(string[] args)
{
bool again = false;
while (!again)
{
Console.WriteLine("C# Basic Calcuator");
Console.WriteLine("Please enter two numbers to be added: ");
Console.WriteLine("Number 1: ");
int result;
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Number 2: ");
int b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Result: ");
result = a + b;
//print result
Console.WriteLine(result);
//potential exit condition
Console.WriteLine("Would you like to calculate again?");
if(Console.ReadLine() == "no")
{
again …Run Code Online (Sandbox Code Playgroud) 我是javascript的新手,我有一个问题,使用reduce和concat函数将几个数组展平为一个完整的数组.
var array = [ [1, 3], [6, 6], [3, 3] ];
var finishedArray = function(array) {
var reducedArray = {};
var completeArray = {};
for (var i = 0; i < array.length; i++) {
reducedArray[i] = array[i].reduce(function (a, b) {
return a + b;
});
completeArray = reducedArray[i].concat(reducedArray[i + 1]);
}
return completeArray;
}
console.log(finishedArray(array));`
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:completeArray = reducedArray[i].concat(reducedArray[i + 1]);
TypeError: undefined is not a function
这是为什么???
我对此行有格式化问题:
Decimal amount = Convert.ToDecimal(String.Format("{0:.##}", doubleAmount));
Run Code Online (Sandbox Code Playgroud)
如果doubleAmount为0.0,则抛出格式异常.我该如何处理0.0?
有了这个:
a sup {
text-decoration: none !important;
color: red;Run Code Online (Sandbox Code Playgroud)
<a href="http:/example.com//">Example<sup class='tm'>™</sup></a>Run Code Online (Sandbox Code Playgroud)
是否可以从<sup>元素中删除下划线?CSS显然瞄准了正确的元素(将其变为红色),但是text-decoration忽略了。反正是有使用下划线只有部分的的a标签?
我正在尝试创建一个宾果卡,应该使用以下规则进行设置:
到目前为止,我已经设法创建了一张包含 9 列和 3 行的卡片,并用唯一的随机数填充了卡片,但我不知道如何实现第三条和第四条规则。
最后,宾果卡应该类似于:
1 EMPTY 18 EMPTY 12 EMPTY 40 EMPTY 32
EMPTY 2 EMPTY EMPTY 67 33 EMPTY 44 EMPTY
90 EMPTY 79 EMPTY 38 EMPTY 55 EMPTY 71
Run Code Online (Sandbox Code Playgroud)
在我的算法中,我不知道如何放置 EMPTY 块并避免重复它们两次以上
我的卡片生成器功能是:
public GameCard GetCard()
{
//This is the list of all numbers between 1 and 99
var availableNumbers = Enumerable.Range(CARD_NUM_MIN, CARD_NUM_MAX).ToList();
var card = new GameCard();
//looping …Run Code Online (Sandbox Code Playgroud) 例如,我正在合并3个文件,但最终文件之间没有换行符...
MemoryStream m = new MemoryStream();
File.OpenRead("c:\file1.txt").CopyTo(m);
File.OpenRead("c:\file2.txt").CopyTo(m);
File.OpenRead("c:\file3.txt").CopyTo(m);
m.Position = 0;
Console.WriteLine(new StreamReader(m).ReadToEnd());
Run Code Online (Sandbox Code Playgroud)
我怎样才能在内存流中添加换行符?
我在执行操作时遇到问题,我使用子字符串在字符串上定义自定义分隔符,删除字符串的前5个字符,然后用分隔符分割字符串.
string delimiterString = numbers.Substring(2, 1);
char delimiter = delimiterString[0];
string result[] = numbers.Remove(0, 5);
result = numbers.Split(delimiter);
Run Code Online (Sandbox Code Playgroud)
我得到的错误是在第三行:Cannot implicitly convert type string[] to string.Split方法似乎需要一个char数组,而remove需要一个字符串,我在两者之间转换时遇到问题.任何人都可以伸出援手吗?
我有JSON字符串,它嵌套了这样的对象数组
[{
"date": 1412966290618,
"memberInfo": {
"firstName": "Antonio",
"lastName": "Smith"
},
"service": [{
"id": null,
"desc": "Advice"
}, {
"id": null,
"desc": "3rd Party Contact"
}],
"commentList": [{
"createDate": "10/10/2014",
"cmntType": "Notes",
"cmntText": "A positive attitude can destroy every negative obstacle."
}, {
"createDate": "10/10/2014",
"cmntType": "Notes",
"cmntText": "I am blessed my grateful heart is the fountain of gladness"
}]
}]
Run Code Online (Sandbox Code Playgroud)
我试图使用$ .each()来循环所有元素.我能够读取"date"和"memberInfo"的值,但无法准备/访问其他两个.我想尝试
$.each(data, function (index, value) {
var date = value.date;
var memberName = value.memberInfo.firstName + ' ' + …Run Code Online (Sandbox Code Playgroud) 我有for循环,它通过参数遍历数组.当下一个参数是"?","&"或"||"时,它不应该添加逗号,但它总是添加.我无法理解为什么,这里是代码:
var args = ["arg1","arg2","?","arg3"];
var query = "";
for (var i = 0; i < args.length; i++) {
switch (args[i]) {
case "?":
query += " where ";
break;
case "&":
query += " and ";
break;
case "||":
query += " or ";
break;
default:
if (args[i+1] != "?");
{
query += args[i] + ", ";
break;
}
query += args[i] + " ";
break;
}
}
document.write(query);Run Code Online (Sandbox Code Playgroud)
当我输入它时(这被""拆分并发送到数组args):
arg1 arg2 ? arg3
Run Code Online (Sandbox Code Playgroud)
它打印出来像这样:
arg1, arg2, where arg3, …Run Code Online (Sandbox Code Playgroud) 我有一个字符串
string a = "(something is there),xyz,(something there)";
Run Code Online (Sandbox Code Playgroud)
而且,我用这个
string s = "(something is there),xyz,(something there)";
int start = s.IndexOf("(") + 1;
int end = s.IndexOf(")", start);
string result = s.Substring(start, end - start);
Run Code Online (Sandbox Code Playgroud)
但是我想用第二部分(something there)
怎么做呢?
我有一个来自mij页面查询的(JS)数组,它看起来像这样:
12349,1,1,1,12345,2,2,2,123457,3,3,3
Run Code Online (Sandbox Code Playgroud)
5位数字是示例"时间戳",一位数是属于时间戳的价格.我想根据时间戳对数组进行排序,但也希望价格保持在时间戳之后.因此,在进行测试后,阵列必须如下所示:
12345,2,2,2,12349,1,1,1,123457,3,3,3
Run Code Online (Sandbox Code Playgroud)
这该怎么做?