►
From YouTube: .NET Design Review: Nullable Annotations
Description
We're trying to finish reviewing the nullable annotations for System.Runtime.
A
A
Somebody's
ass
communes,
we
had
annotated,
and
then
we
kind
of
revised
our
stance
on
them.
You
know.
Originally,
we
were
thinking
well,
they
loud.
No,
so
we
should
have
that
in
the
API,
but
then
we
sort
of
revised
and
thinking
well.
You
wouldn't
use
the
attribute
at
all
of
your
capacity,
so
we
should
really
express
the
intent
and
say
that
they
should
both
be
nominal
and
it
looks
like
we
never
revisited
this
one.
B
A
Default
values,
but
no
light
right
now,
no
type
is
you're.
Talking
about
this
with
some
other
ones
as
well.
A
A
B
A
A
A
A
B
I,
don't
remember
the
actual,
like
I
want
to
see
like
the
the
factor
of
the
the
way.
The
remember
this.
This
was
basically
a
way
to
allow
cross
water
in
learning
for
engine,
so
everything
that
was
marked
with
this
attribute
basically
allowed
in
lining,
so
that
targeted
patching
effectively
doesn't
apply
to
that.
Guy
I
think.
A
B
B
B
D
B
B
C
C
B
Think
the
reason
is
just
for
review.
They're
not
passing
anything
is
reasonable,
although
I
think
we
don't
do
that.
I.
Think
if
you
look
through
the
framework,
evasive
action
used,
air
tube
you'll
be
all
generated.
The
string,
something
the
lines
of
like
this
API
is
perfect
at
a
close,
so
suck
it
up
or
something
like
that.
Alright.
B
A
C
A
A
C
C
H
B
B
B
I
I
I
B
B
B
B
A
B
B
B
B
F
F
C
B
B
B
B
G
F
E
B
B
C
B
B
J
E
F
C
A
A
B
E
E
A
E
C
B
B
B
B
B
A
B
B
B
B
B
G
A
C
B
J
A
B
K
B
K
B
K
B
B
E
B
B
J
H
B
B
K
B
B
B
K
K
B
B
B
K
So,
like
I
looked
at
system
text
encoding
encoding
name,
which
says
it
gets
it
from
code,
page
data
item
that
display
name
which
is
marked
as
Malibu,
because
the
constructor
for
code,
page
data
item
says
it
takes
an
o-level
display.
Name.
I
only
see
one
place
that
builds
it
and
I
don't
see
how?
If
we
didn't
also
I,
don't
know
what
it's
got
marked
away.
K
H
A
K
K
K
K
A
B
B
B
B
A
A
K
J
C
K
J
B
A
G
B
B
B
All
right,
so
why
does
append
all?
Because
we
can't
express
them?
I
was
singing
the
appendage
over
9
Yule
Bush,
which
should
be
an
ienumerable
of
inaudible
elements,
but
we
can't
express
it
because
it's
generic,
it's.
A
A
F
J
J
I
K
K
J
K
B
E
Right,
so,
if
you
throw
an
exception
from
C++
directly
like
native
code,
it's
always
wrapped
in
a
seh
exceptions.
Mr.
no
time
observer,
let's
see
even
if
you're
throwing
a
null
point,
if
you're
throwing
a
managed
exception
of
any
type,
it
dropped
in
a
run
time
object,
except
for
a
null
pointer,
which
is
transformed
into
no
reference
exception.
G
K
K
K
B
B
B
B
B
H
A
A
K
G
A
Yeah,
although
we
might
want
to
in
their
time
constraint
involved,
but
ideally
we
would
probably
wait
till
review
the
attributes
until
we
actually
had
a
compiler
that
verifies
them.
Ok,
but
maybe
not
I
mean
at
that
point.
It
was
just
be
bug
fixes.
We
could
probably
do
it
all
ahead
of
time
and
then
one
office
here
and
there,
okay,
so
yeah
your
plan
sounds
good.
B
K
K
C
K
C
C
A
Passing
in
non-null
state
but
and
you're
going
to
be
using
a
lambda
or
something
on
you
know
for
the
action,
and
you
can
see
right
there
that
you're
passing
in
a
non-null
thing,
and
yet
we
have
to
bang
away.
The
argument
to
the
delegate
is
a
lambda,
because
there's
no
question
with
the
complexity
between
the
action
in
the
state.
B
K
Sure
that
you
know,
if
somebody
calls
this
constructor
and
it
passes,
the
barre
name
of
a
method
group
is:
is
that
going
to
compile
or
are
they
going
to
have
to
wrap
it
in
a
lambda
or
use?
You
know
new
action
of
update
question
mark
wrapping
that
bear
word
to
be
so
that
the
compiler
knows
what
to
do
well.
A
C
C
A
C
K
Right,
so
if,
if
someone
has
a
someone
has
a
reachable
method,
foo
that
takes
object,
no
question
mark
and
they
have
knowable
no
ability
turned
on
and
they're
currently
calling
this
constructor
passing
the
bear
word
food
to
get
them
at
the
group
and
the
automatic
delegate
instance
based
off
that
they
will
now
have
a
comb.
This
would
induce
a
compile,
breaking
change
like
all
of
know,
ability
and
don't
have
to
go
deal
with
that.
I
have
to
go,
get
a
bang.
B
A
K
A
A
H
A
A
Right
because
then
that
would
make
the
task
that
was
returned
from
run.
It
would
suggest
that
the
whole
operation
had
been
completed
rather
than
aborted.
Okay,.
C
A
F
K
A
K
H
A
Well,
it
yeah
it's
I
mean
this
goes
back
to
whether
it's
a
design
flaw
or
not,
but
tasks.
You
create
new
tasks
like
the
task
factory
start
new.
It
uses
current
as
whatever
the
current
schedule
is,
is
what
it
targets.
So,
if
you
were
to
return
task,
scheduler
dot
defaults
from
scheduler,
it
would
override
that
so
scheduler
returns
null
to
say
no
keep
doing
the
market.
A
C
B
H
A
A
B
B
B
B
B
You
have
a
dump
from
the
c-sharp
compiler
450
Meg's
crispy.
It.
B
B
B
B
B
B
B
B
B
Which
I
mean
I
have
to
say
that,
like
as
much
as
we
need
pick
things
like
all
in
all,
like
you
consider
the
amount
of
api's,
we
have
the
it's
still
somewhat
remarkable
surprise,
and
when
it's
that
consistent,
like
I,
you
know
in
my
own
co-pays
that
I
wrote
the
single
person
role.
That
is
like
a
fraction
of
this.
It's
not
as
nearly
as
consistent
as
we
on
the
femur.
B
B
B
B
Are
you
want
me
to
show
attributes
now?
Yes,
that
might
not
actually
work
I.
B
J
F
B
K
C
C
B
B
B
G
E
A
B
B
B
B
B
A
G
E
C
B
B
B
B
G
G
F
F
B
G
D
A
C
E
So
I
would
imagine
resting
in
that
case
would
be
to
allow
method,
name,
dot,
parameter
name
just
like
we
allow
for
types
and
resolves
to
the
final
bit.
I'll
just
have
them
in
school.
Now
again
that
doesn't
that
would
change
code
yeah
that
could
potentially
change
existing
code.
If
you
say
it's
just
in
scope,
you
have
to
be
able
to
differentiate
if
you've
also
got
a
field
called
Cooper,
because
some
people
use
this
stock.
E
C
E
E
B
K
F
K
B
B
B
How
can
this
be
not
now,
if
not
now,
given
that
object,
thought
to
string
is
defined,
is
not
a
more
well.
You
call
it
a.
A
B
G
C
C
C
B
No
expand
environment
variable
doesn't
do
what
you
think
it
does.
The
expanding
variables
takes
a
string
and
basically
expands
everything
that
is
question
mark
expire.
So,
basically,
if
you,
if
you've
basically
shouldn't
be
named,
it
should
have
been
text,
but
you
can
have
a
string
like
you
know,
percent
path,
percent,
semicolon
blah
blah
blah
blah
blah,
so
the
variable
doesn't
exist.
It
just
gives
you
back
the
original
string.
Okay,.
C
C
A
A
G
E
K
A
B
E
B
But
we
basically
like
the
problem,
is
we
can't
Hollywood
because
it's
a
fur
garlic
almost
all
of
these
ever
turned
by
environment
and
some
of
them
actually
still
make
sense
some
of
them?
Don't,
though,
it
moved
all
the
ones
that
don't
make
sense.
I
think
these
are
the
only
reliable
ones
we
have
left.