小编Tho*_*mas的帖子

隐式转换运算符对此Nullable <T>行为的理由是什么?

我在Nullable隐式转换之间的交互中遇到了一些有趣的行为.我发现从值类型提供引用类型的隐式转换,它允许Nullable在我反对期望编译错误时将类型传递给需要引用类型的函数.以下代码演示了这一点:

static void Main(string[] args)
{
    PrintCatAge(new Cat(13));
    PrintCatAge(12);
    int? cat = null;
    PrintCatAge(cat);
}

private static void PrintCatAge(Cat cat)
{
    if (cat == null)
        System.Console.WriteLine("What cat?");
    else
        System.Console.WriteLine("The cat's age is {0} years", cat.Age);
}

class Cat
{
    public int Age { get; set; }
    public Cat(int age)
    {
        Age = age;
    }

    public static implicit operator Cat(int i)
    {
        System.Console.WriteLine("Implicit conversion from " + i);
        return new Cat(i);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

The cat's age …
Run Code Online (Sandbox Code Playgroud)

.net c# nullable implicit-conversion

32
推荐指数
1
解决办法
620
查看次数

如何在多个活动中安全地实施WakeLock

我希望为我的应用程序的用户提供使用a保持屏幕的能力WakeLock.在我的主要活动中,我创建了以下函数:

protected void processWakeLock(int pauseResume) {
   switch (pauseResume) {
   case STATE_RESUME:
      if (mKeepScreenOn) {
         wakeLock.acquire();
      }
      break;
   case STATE_PAUSE:
      if (wakeLock.isHeld()) {
         wakeLock.release();
      }
      break;
   }
}
Run Code Online (Sandbox Code Playgroud)

我目前正在通过我的覆盖onPauseonResume覆盖来调用它,因为我希望确保在他们不主动使用我的应用程序时不会导致用户手机上的锁定.我的应用程序有3个其他全屏视图.什么是确保他们可以WakeLock继续使用我的应用程序的所有部分同时仍然对其余手机安全的最佳方法.

我的第一个想法是在我的每个活动中复制相同的代码片段,虽然这似乎是很多锅炉板.我无法使用onStart,onStop因为当我切换到另一个全屏幕活动时,可见性会丢失.虽然也许会更好

基于此处的图表和信息(http://developer.android.com/guide/topics/fundamentals.html),我没有看到更好的方法来应用锁定.

android android-wake-lock

0
推荐指数
1
解决办法
1108
查看次数

Docker 端口未公开 Golang

我正在 docker 中构建 golang WebService。构建看起来不错,但我无法公开端口以供外部(容器外部)访问。当我从命令行(在容器内)curl 时,应用程序似乎工作正常。

我看到很多类似问题的帖子,但不幸的是许多都没有解决或似乎不适用。

FROM golang:alpine
RUN mkdir /go/src/webservice_refArch
ADD . /go/src/webservice_refArch
WORKDIR /go/src/webservice_refArch
RUN apk add curl
RUN cd /go/src/webservice_refArch/ && go get ./...
RUN cd /go/src/webservice_refArch/cmd/reference-w-s-server && go build -o ../../server
EXPOSE 7878
ENTRYPOINT ["./server", "--port=7878"]
Run Code Online (Sandbox Code Playgroud)

我都尝试过:

  • :7878
  • 本地主机:7878

networking docker

0
推荐指数
1
解决办法
3612
查看次数