//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public Object getOption(int optID) throws SocketException
        public override Object GetOption(int optID)
        {
            if (Closed)
            {
                throw new SocketException("Socket Closed");
            }

            if (optID == SocketOptions_Fields.SO_BINDADDR)
            {
                if ((Fd != null && Fd1 != null) && !Connected)
                {
                    return(AnyLocalBoundAddr);
                }
                int family = ConnectedAddress == null ? -1 : ConnectedAddress.Holder().Family;
                return(socketLocalAddress(family));
            }
            else if (optID == SocketOptions_Fields.SO_REUSEADDR && ReuseAddressEmulated)
            {
                return(IsReuseAddress);
            }
            else
            {
                return(base.GetOption(optID));
            }
        }